dumpVar: reqctx.ContextData
{
"DisableDownloadSourceArchives": false,
"Repository": {
"IsFsckEnabled": true,
"Avatar": "",
"OwnerName": "repos",
"NumActionRuns": 984,
"IsPrivate": false,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true,
"EnableTimetracker": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive"
}
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowRebase": false,
"AllowSquash": true,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"IgnoreWhitespaceConflicts": false,
"AllowRebaseMerge": false,
"AllowFastForwardOnly": false,
"AllowManualMerge": false
}
}
],
"CloseIssuesViaCommitInAnyBranch": true,
"LowerName": "pypilot",
"Name": "pypilot",
"NumClosedIssues": 1,
"NumProjects": 0,
"Size": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"UpdatedUnix": 1776589233,
"NumClosedMilestones": 0,
"Owner": {
"LowerName": "repos",
"LoginType": 0,
"LastLoginUnix": 0,
"AllowGitHook": false,
"LoginSource": 0,
"Type": 1,
"Location": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "",
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"CreatedUnix": 1739049474,
"MaxRepoCreation": -1,
"AvatarEmail": "",
"Visibility": 0,
"ID": 13,
"Name": "repos",
"KeepEmailPrivate": false,
"IsAdmin": false,
"RepoAdminChangeTeamAccess": true,
"PasswdHashAlgo": "",
"Website": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsActive": true,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"NumTeams": 6,
"DiffViewStyle": "",
"FullName": "",
"UpdatedUnix": 1776538024,
"KeepActivityPrivate": false,
"Email": "",
"MustChangePassword": false,
"Description": "",
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 7,
"Theme": "tangerine-dream",
"Passwd": "",
"AllowCreateOrganization": false,
"NumRepos": 27
},
"Description": "",
"OriginalServiceType": 2,
"NumWatches": 5,
"NumIssues": 2,
"IsEmpty": false,
"BaseRepo": "[*repo.Repository]",
"OwnerID": 13,
"Website": "",
"NumOpenMilestones": 0,
"TemplateID": 0,
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"ArchivedUnix": 0,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"DefaultWikiBranch": "main",
"NumOpenIssues": 1,
"NumClosedPulls": 436,
"NumOpenProjects": 0,
"NumClosedActionRuns": 984,
"NumOpenActionRuns": 0,
"IsArchived": false,
"NumForks": 0,
"IsMirror": false,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFork": false,
"GitSize": 2465934,
"Topics": null,
"CreatedUnix": 1737063265,
"NumClosedProjects": 0,
"NumStars": 0,
"NumPulls": 436,
"NumOpenPulls": 0,
"TrustModel": 0,
"ID": 25,
"DefaultBranch": "main",
"NumMilestones": 0,
"ForkID": 0,
"IsTemplate": false
},
"ShowRegistrationButton": false,
"HeadBranch": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"Diff": {
"End": "",
"Files": [
{
"Addition": 1,
"Type": 4,
"IsLFSFile": false,
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsIncomplete": false,
"IsVendored": false,
"OldName": ".gitea/workflows/security.yml",
"IsDeleted": false,
"IsRenamed": true,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows-disabled/security.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,7 +25,7 @@ jobs:"
},
{
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25
},
{
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"LeftIdx": 27,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2"
},
{
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0
},
{
"Content": " uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"Name": ".gitea/workflows-disabled/security.yml",
"Deletion": 1,
"OldEntryMode": "",
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a"
},
{
"Addition": 22,
"Sections": [
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 12,
"RightHunkSize": 12
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0
},
{
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16
},
{
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1
},
{
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Type": 1,
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0
},
{
"Match": 11,
"Type": 3,
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": 10,
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 21,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null
},
{
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23,
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 12,
"RightHunkSize": 12
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,12 +25,12 @@ jobs:",
"Comments": null
},
{
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0,
"Type": 1
},
{
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/setup-python@v6"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"Content": "- python-version: 3.13",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": 8,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 30,
"Match": 7,
"Type": 2,
"Content": "+ python-version: 3.14",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " - name: uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 32,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12
},
{
"LeftIdx": 0,
"RightIdx": 33,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/cache@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " path: /tmp/.uv-cache"
},
{
"LeftIdx": 36,
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -61,19 +61,19 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightIdx": 61,
"LeftHunkSize": 19,
"RightHunkSize": 19,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 36,
"LastRightIdx": 36,
"LeftIdx": 61
}
},
{
"LeftIdx": 61,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0
},
{
"LeftIdx": 63,
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 64,
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- uv pip freeze > requirements.txt",
"Comments": null
},
{
"Content": "- mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": 12,
"Type": 3
},
{
"Type": 3,
"Content": "- mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 13
},
{
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 64,
"Match": 4,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 65,
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 66,
"Match": 6,
"Type": 2,
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock uv.lock.bak",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 69
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 71,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": 24,
"Type": 3
},
{
"Match": 25,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"LeftIdx": 75,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": 28,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70,
"Match": 15,
"Type": 2,
"Content": "+ # - name: Snyk SAST Scan"
},
{
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71,
"Match": 16
},
{
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 17
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 74,
"Match": 19,
"Type": 2,
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75,
"Match": 20,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 21,
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null
},
{
"LeftIdx": 77,
"RightIdx": 77,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " # - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 78,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 79
}
],
"FileName": ".gitea/workflows/ci.yml"
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -84,8 +84,8 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 79,
"LastRightIdx": 79,
"LeftIdx": 84,
"RightIdx": 84,
"LeftHunkSize": 8,
"RightHunkSize": 8
}
},
{
"RightIdx": 84,
"Match": 0,
"Type": 1,
"Content": " # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84
},
{
"Match": 0,
"Type": 1,
"Content": " # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 85
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 86,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": 9
},
{
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 10,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- rm -f requirements.txt"
},
{
"Type": 3,
"Content": "- mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": 12
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- mv uv.lock.bak uv.lock",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 87,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88,
"Match": 5,
"Type": 2,
"Content": "+ # run: |"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 89,
"Match": 6,
"Type": 2,
"Content": "+ # rm -f requirements.txt"
},
{
"LeftIdx": 0,
"RightIdx": 90,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": 8,
"Type": 2
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 92,
"RightIdx": 92,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 91
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"Type": 2,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsBin": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"Deletion": 22,
"EntryMode": "",
"IsLFSFile": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"OldName": ".gitea/workflows/ci.yml",
"IsVendored": false
},
{
"IsViewed": false,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 6,
"RightHunkSize": 6
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,6 +12,6 @@ jobs:",
"Comments": null
},
{
"Type": 1,
"Content": " name: Validate PR Title",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0
},
{
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0
},
{
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1
},
{
"Content": " commit-message: ${{ gitea.event.pull_request.title }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 17,
"LeftIdx": 18,
"RightIdx": 18,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 17
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
}
]
}
],
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"IsBin": false,
"Name": ".gitea/workflows/conventional-commit.yml",
"Deletion": 1,
"Type": 2,
"EntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"Addition": 1,
"IsProtected": false,
"IsLFSFile": false,
"OldName": ".gitea/workflows/conventional-commit.yml",
"OldEntryMode": "",
"IsDeleted": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsVendored": false
},
{
"IsIncompleteLineTooLong": false,
"Name": ".gitea/workflows/release.yml",
"OldEntryMode": "",
"IsDeleted": false,
"IsBin": false,
"IsRenamed": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Type": 2,
"IsIncomplete": false,
"IsGenerated": false,
"Addition": 7,
"IsLFSFile": false,
"IsSubmodule": false,
"IsProtected": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"OldName": ".gitea/workflows/release.yml",
"Deletion": 7,
"EntryMode": "",
"IsCreated": false,
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -45,7 +45,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 45,
"RightIdx": 45,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 45,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 46,
"Match": 0
},
{
"RightIdx": 47,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48
},
{
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": 4
},
{
"LeftIdx": 49,
"RightIdx": 49,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " # - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 51
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 51,
"LastRightIdx": 51,
"LeftIdx": 53,
"RightIdx": 53,
"LeftHunkSize": 7
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -53,7 +53,7 @@ jobs:"
},
{
"Type": 1,
"Content": " # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0
},
{
"Type": 1,
"Content": " # python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 54,
"Match": 0
},
{
"Type": 1,
"Content": " - name: Install uv",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 55,
"Match": 0
},
{
"LeftIdx": 56,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: astral-sh/setup-uv@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56,
"Match": 4,
"Type": 2,
"Content": "+ uses: astral-sh/setup-uv@v7"
},
{
"LeftIdx": 57,
"RightIdx": 57,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " enable-cache: true"
},
{
"LeftIdx": 59,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " cache-dependency-glob: \"uv.lock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"SectionInfo": {
"RightIdx": 125,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 59,
"LastRightIdx": 59,
"LeftIdx": 125
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -125,7 +125,7 @@ jobs:",
"Comments": null
},
{
"LeftIdx": 125,
"RightIdx": 125,
"Match": 0,
"Type": 1,
"Content": " REPO: ${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 126,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 127,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127
},
{
"LeftIdx": 128,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 128,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 129,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129
},
{
"LeftIdx": 130,
"RightIdx": 130,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 131,
"RightIdx": 131,
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -134,14 +134,14 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 131,
"LastRightIdx": 131,
"LeftIdx": 134,
"RightIdx": 134,
"LeftHunkSize": 14,
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml"
},
"LeftIdx": 0
},
{
"LeftIdx": 134,
"RightIdx": 134,
"Match": 0,
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 135,
"RightIdx": 135,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 136,
"Match": 0,
"Type": 1,
"Content": " - name: Log in to Gitea Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136
},
{
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 137,
"Match": 4,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"LeftIdx": 139,
"RightIdx": 139,
"Match": 0,
"Type": 1,
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " username: ${{ vars.ACTIONS_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 140,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 142,
"Match": 0
},
{
"LeftIdx": 143,
"RightIdx": 143,
"Match": 0,
"Type": 1,
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0,
"Match": 13
},
{
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 144,
"Match": 12,
"Type": 2
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 145,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " registry: ghcr.io",
"Comments": null
},
{
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 147,
"Match": 0
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 147,
"LastRightIdx": 147,
"LeftIdx": 149,
"RightIdx": 149,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -149,7 +149,7 @@ jobs:",
"Comments": null
},
{
"RightIdx": 149,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149
},
{
"LeftIdx": 150,
"RightIdx": 150,
"Match": 0,
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " id: meta",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 151,
"Match": 0
},
{
"Content": "- uses: docker/metadata-action@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 152,
"Match": 4
},
{
"RightIdx": 153,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153
},
{
"RightIdx": 154,
"Match": 0,
"Type": 1,
"Content": " tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154
},
{
"LeftIdx": 155,
"RightIdx": 155,
"Match": 0,
"Type": 1,
"Content": " images: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -165,7 +165,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LeftIdx": 165,
"RightIdx": 165,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 155,
"LastRightIdx": 155
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 165,
"Match": 0,
"Type": 1,
"Content": " printf \"Tags:\\n${{ steps.meta.outputs.tags }}\"",
"Comments": null
},
{
"LeftIdx": 166,
"RightIdx": 166,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " - name: Build images",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 167,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- uses: docker/build-push-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": 5
},
{
"Content": "+ uses: docker/build-push-action@v7",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 168,
"Match": 4,
"Type": 2
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 169,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " context: .",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 170
},
{
"Type": 1,
"Content": " push: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 171,
"Match": 0
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 171,
"LastRightIdx": 171,
"LeftIdx": 183,
"RightIdx": 183
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
]
},
{
"OldName": "Dockerfile",
"Addition": 1,
"Type": 2,
"IsSubmodule": false,
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"OldEntryMode": "",
"IsDeleted": false,
"IsBin": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 4,
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "Dockerfile"
}
},
{
"RightIdx": 0,
"Match": 2,
"Type": 3,
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1
},
{
"LeftIdx": 0,
"RightIdx": 1,
"Match": 1,
"Type": 2,
"Content": "+FROM python:3.14-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " LABEL org.opencontainers.image.source=\"https://github.com/luketainton/pypilot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 26,
"RightIdx": 26
}
}
]
}
],
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Deletion": 1,
"EntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"Name": "Dockerfile"
},
{
"Type": 2,
"IsCreated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsBin": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 7,
"RightIdx": 7,
"LeftHunkSize": 50,
"RightHunkSize": 28,
"HiddenCommentIDs": null,
"Path": "pyproject.toml"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -7,50 +7,28 @@ authors = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " {name = \"Luke Tainton\", email = \"luke@tainton.uk\"},"
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " requires-python = \"<4.0,>=3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1
},
{
"RightIdx": 10,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 11,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"Type": 3,
"Content": "- \"astroid==3.3.11\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 31
},
{
"Match": 32,
"Type": 3,
"Content": "- \"attrs==25.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"certifi==2025.7.14\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"charset-normalizer==3.4.2\",",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"click==8.2.2\","
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dill==0.4.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"exceptiongroup==1.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"idna==3.10\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18
},
{
"Match": -1,
"Type": 3,
"Content": "- \"iniconfig==2.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- \"lazy-object-proxy==1.11.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0
},
{
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"mccabe==0.7.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"mypy-extensions==1.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"packaging==25.0\","
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pathspec==0.12.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"platformdirs==4.3.8\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pluggy==1.6.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Match": -1,
"Type": 3,
"Content": "- \"py==1.11.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pyparsing==3.2.3\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"requests==2.32.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"six==1.17.0\","
},
{
"Content": "- \"tabulate==0.9.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"tomli==2.2.1\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"tomlkit==0.13.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33
},
{
"Content": "- \"urllib3==2.5.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"wrapt==1.17.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": 6,
"Type": 2,
"Content": "+ \"requests==2.32.5\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ \"tabulate==0.10.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 7,
"Type": 2
},
{
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 15,
"Match": 0,
"Type": 1
},
{
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " [project.scripts]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"Type": 1,
"Content": " app = \"app.main:main\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 17,
"Match": 0
},
{
"LeftIdx": 40,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": 42
},
{
"Type": 3,
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 43
},
{
"Type": 3,
"Content": "-dev-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": 44
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44
},
{
"RightIdx": 19,
"Match": 38,
"Type": 2,
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 39
},
{
"Content": "+ \"black<26.3.1,>=26.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 40,
"Type": 2
},
{
"LeftIdx": 45,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"coverage<8.0.0,>=7.5.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": 47,
"Type": 3,
"Content": "- \"pylint<4.0.0,>=3.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 23,
"Match": 46,
"Type": 2,
"Content": "+ \"pylint<4.1.0,>=4.0.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 24,
"Match": 0,
"Type": 1,
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.1.1\",",
"Comments": null
},
{
"RightIdx": 25,
"Match": 49,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 49,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " \"requests-mock<2.0.0,>=1.12.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 27,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 28,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " [tool.pdm.build]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 29
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " includes = []",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " [build-system]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54
},
{
"Content": " requires = [\"pdm-backend\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 33,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\""
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightIdx": 35,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 56,
"LastRightIdx": 34,
"LeftIdx": 57
}
}
]
}
],
"IsGenerated": false,
"IsProtected": false,
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"Addition": 9,
"Deletion": 31,
"EntryMode": "",
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false,
"Name": "pyproject.toml",
"OldEntryMode": "",
"IsDeleted": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsIncomplete": false,
"HasChangedSinceLastReview": false,
"OldName": "pyproject.toml"
},
{
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": "renovate.json",
"OldName": "renovate.json",
"Addition": 16,
"IsBin": false,
"IsSubmodule": false,
"IsVendored": false,
"IsProtected": false,
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"EntryMode": "",
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,6 +8,11 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 6,
"RightHunkSize": 11
}
},
{
"Match": 0,
"Type": 1,
"Content": " \"platformCommit\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8
},
{
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " \"rollbackPrs\": true,"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitScope\": \"deps\","
},
{
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2,
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2,
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " \"vulnerabilityAlerts\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \","
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true,",
"Comments": null
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 18,
"LeftIdx": 16,
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 13
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 21,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 22
},
{
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23
},
{
"Type": 3,
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 5
},
{
"LeftIdx": 0,
"RightIdx": 24,
"Match": 4,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+ \"matchUpdateTypes\": [\"patch\"],"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true"
},
{
"RightIdx": 33,
"Match": -1,
"Type": 2,
"Content": "+ }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2
},
{
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0,
"Type": 1
}
]
},
{
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": "renovate.json",
"LastLeftIdx": 20,
"LastRightIdx": 35,
"LeftIdx": 21,
"RightIdx": 36,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
],
"FileName": "renovate.json"
}
],
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"Deletion": 1,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsViewed": false,
"Type": 2,
"IsRenamed": false
},
{
"Type": 2,
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,25 +8,16 @@ resolution-markers = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 25,
"RightHunkSize": 16,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"3.3.11\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 4,
"Type": 2,
"Content": "+version = \"4.0.4\""
},
{
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/74/dfb75f9ccd592bbedb175d4a32fc643cf569d7c218508bfbd6ea7ef9c091/astroid-3.3.11.tar.gz\", hash = \"sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce\", size = 400439, upload-time = \"2025-07-13T18:04:23.177Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 7
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl\", hash = \"sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec\", size = 275612, upload-time = \"2025-07-13T18:04:21.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"attrs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"25.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz\", hash = \"sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b\", size = 812032, upload-time = \"2025-03-13T11:10:22.779Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl\", hash = \"sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3\", size = 63815, upload-time = \"2025-03-13T11:10:21.14Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 17,
"Match": 0
},
{
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"LeftIdx": 28,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"25.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": 26
},
{
"Match": 25,
"Type": 2,
"Content": "+version = \"26.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 23,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 91,
"RightHunkSize": 125,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 32,
"LastRightIdx": 23,
"LeftIdx": 34,
"RightIdx": 25
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -34,91 +25,125 @@ dependencies = ["
},
{
"LeftIdx": 34,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 35,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 27,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytokens\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449, upload-time = \"2025-01-29T04:15:40.373Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/11/5f/25b7b149b8b7d3b958efa4faa56446560408c0f2651108a517526de0320a/black-26.3.0.tar.gz\", hash = \"sha256:4d438dfdba1c807c6c7c63c4f15794dda0820d2222e7c4105042ac9ddfc5dd0b\", size = 664127, upload-time = \"2026-03-06T17:42:33.7Z\" }"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 31
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372, upload-time = \"2025-01-29T05:37:11.71Z\" },",
"Comments": null
},
{
"LeftIdx": 41,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865, upload-time = \"2025-01-29T05:37:14.309Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 42,
"RightIdx": 0,
"Match": 24,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699, upload-time = \"2025-01-29T04:18:17.688Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 43,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028, upload-time = \"2025-01-29T04:18:51.711Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988, upload-time = \"2025-01-29T05:37:16.707Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985, upload-time = \"2025-01-29T05:37:18.273Z\" },"
},
{
"Match": 28,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816, upload-time = \"2025-01-29T04:18:33.823Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860, upload-time = \"2025-01-29T04:19:12.944Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": 29
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673, upload-time = \"2025-01-29T05:37:20.574Z\" },",
"Comments": null
},
{
"LeftIdx": 49,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190, upload-time = \"2025-01-29T05:37:22.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926, upload-time = \"2025-01-29T04:18:58.564Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 0,
"Match": 33,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613, upload-time = \"2025-01-29T04:19:27.63Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": 34,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646, upload-time = \"2025-01-29T04:15:38.082Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": 9,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/ec/e4db9f2b2db8226ae20d48b589c69fd64477657bf241c8ccaea3bc4feafa/black-26.3.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:3da07abe65732483e915ab7f9c7c50332c293056436e9519373775d62539607c\", size = 1851905, upload-time = \"2026-03-06T17:46:15.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 33,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/2c/ccecfcbd6a0610ecf554e852a146f053eaeb5b281dd9cb634338518c765e/black-26.3.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:fc9fd683ccabc3dc9791b93db494d93b5c6c03b105453b76d71e5474e9dfa6e7\", size = 1689299, upload-time = \"2026-03-06T17:46:17.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/53/8dcb860242012d6da9c6b1b930c3e4c947eb42feb1fc70f2a4e7332c90c5/black-26.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:8e2c7e2c5ee09ff575869258b2c07064c952637918fc5e15f6ebd45e45eae0aa\", size = 1753902, upload-time = \"2026-03-06T17:46:19.592Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 35,
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/21/f37b3efcc8cf2d01ec9eb5466598aa53bed2292db236723ac4571e24c4de/black-26.3.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:a849286bfc3054eaeb233b6df9056fcf969ee18bf7ecb71b0257e838a0f05e6d\", size = 1413841, upload-time = \"2026-03-06T17:46:20.981Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/74/e70f5f2a74301d8f10276b90715699d51d7db1c3dd79cf13966d32ba7b18/black-26.3.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:c93c83af43cda73ed8265d001214779ab245fa7a861a75b3e43828f4fb1f5657\", size = 1220105, upload-time = \"2026-03-06T17:46:23.269Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1d/76/b21711045b7f4c4f1774048d0b34dd10a265c42255658b251ce3303ae3c7/black-26.3.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:c2b1e5eec220b419e3591a0aaa6351bd3a9c01fe6291fbaf76d84308eb7a2ede\", size = 1895944, upload-time = \"2026-03-06T17:46:24.841Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": 14,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f2/c3/8c56e73283326bc92a36101c660228fff09a2403a57a03cacf3f7f84cf62/black-26.3.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1bab64de70bccc992432bee56cdffbe004ceeaa07352127c386faa87e81f9261\", size = 1718669, upload-time = \"2026-03-06T17:46:26.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 38,
"Match": 15,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 39,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7b/8b/712a3ae8f17c1f3cd6f9ac2fffb167a27192f5c7aba68724e8c4ab8474ad/black-26.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:5b6c5f734290803b7b26493ffd734b02b72e6c90d82d45ac4d5b862b9bdf7720\", size = 1794844, upload-time = \"2026-03-06T17:46:28.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/5b/ee955040e446df86473287dd24dc69c80dd05e02cc358bca90e22059f7b1/black-26.3.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:7c767396af15b54e1a6aae99ddf241ae97e589f666b1d22c4b6618282a04e4ca\", size = 1420461, upload-time = \"2026-03-06T17:46:29.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 40,
"Match": 17,
"Type": 2
},
{
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/12/77/40b8bd44f032bb34c9ebf47ffc5bb47a2520d29e0a4b8a780ab515223b5a/black-26.3.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:765fd6ddd00f35c55250fdc6b790c272d54ac3f44da719cc42df428269b45980\", size = 1229667, upload-time = \"2026-03-06T17:46:31.654Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41
},
{
"LeftIdx": 0,
"RightIdx": 42,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/28/c3/21a834ce3de02c64221243f2adac63fa3c3f441efdb3adbf4136b33dfeb0/black-26.3.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:59754fd8f43ef457be190594c07a52c999e22cb1534dc5344bff1d46fdf1027d\", size = 1895195, upload-time = \"2026-03-06T17:46:33.12Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 43,
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1c/f9/212d9697dd78362dadb778d4616b74c8c2cf7f2e4a55aac2adeb0576f2e9/black-26.3.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1fd94cfee67b8d336761a0b08629a25938e4a491c440951ce517a7209c99b5ff\", size = 1718472, upload-time = \"2026-03-06T17:46:34.576Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a2/dd/da980b2f512441375b73cb511f38a2c3db4be83ccaa1302b8d39c9fa2dff/black-26.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:6f7b3e653a90ca1ef4e821c20f8edaee80b649c38d2532ed2e9073a9534b14a7\", size = 1793741, upload-time = \"2026-03-06T17:46:36.261Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/11/cd69ae8826fe3bc6eaf525c8c557266d522b258154a2968eb46d6d25fac7/black-26.3.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:f8fb9d7c2496adc83614856e1f6e55a9ce4b7ae7fc7f45b46af9189ddb493464\", size = 1422522, upload-time = \"2026-03-06T17:46:37.607Z\" },",
"Comments": null
},
{
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/f5/647cf50255203eb286be197925e86eedc101d5409147505db3e463229228/black-26.3.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:e8618c1d06838f56afbcb3ffa1aa16436cec62b86b38c7b32ca86f53948ffb91\", size = 1231807, upload-time = \"2026-03-06T17:46:39.072Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 47,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ff/77/b197e701f15fd694d20d8ee0001efa2e29eba917aa7c3610ff7b10ae0f88/black-26.3.0-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:d0c6f64ead44f4369c66f1339ecf68e99b40f2e44253c257f7807c5a3ef0ca32\", size = 1889209, upload-time = \"2026-03-06T17:46:40.453Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/85/b4d4924ac898adc2e39fc7a923bed99797535bc16dea4bc63944c3903c2b/black-26.3.0-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:ed6f0809134e51ec4a7509e069cdfa42bf996bd0fd1df6d3146b907f36e28893\", size = 1720830, upload-time = \"2026-03-06T17:46:42.009Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 49,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/b1/5c0bf29fe5b43fcc6f3e8480c6566d21a02d4e702b3846944e7daa06dea9/black-26.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:cc6ac0ea5dd5fa6311ca82edfa3620cba0ed0426022d10d2d5d39aedbf3e1958\", size = 1787676, upload-time = \"2026-03-06T17:46:43.382Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/ce/cc8cf14806c144d6a16512272c537d5450f50675d3e8c038705430e90fd9/black-26.3.0-cp314-cp314-win_amd64.whl\", hash = \"sha256:884bc0aefa96adabcba0b77b10e9775fd52d4b766e88c44dc6f41f7c82787fc8\", size = 1445406, upload-time = \"2026-03-06T17:46:44.948Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 50
},
{
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/bb/049ea0fad9f8bdec7b647948adcf74bb720bd71dcb213decd553e05b2699/black-26.3.0-cp314-cp314-win_arm64.whl\", hash = \"sha256:be3bd02aab5c4ab03703172f5530ddc8fc8b5b7bb8786230e84c9e011cee9ca1\", size = 1257945, upload-time = \"2026-03-06T17:46:46.432Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/d7/7360654ba4f8b41afcaeb5aca973cfea5591da75aff79b0a8ae0bb8883f6/black-26.3.0-py3-none-any.whl\", hash = \"sha256:e825d6b121910dff6f04d7691f826d2449327e8e71c26254c030c4f3d2311985\", size = 206848, upload-time = \"2026-03-06T17:42:31.133Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 52
},
{
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 54
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 55,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 56,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 57,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-version = \"2025.7.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 57,
"Match": 47,
"Type": 2,
"Content": "+version = \"2026.2.25\"",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 58
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz\", hash = \"sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995\", size = 163981, upload-time = \"2025-07-14T03:29:28.449Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 51,
"Type": 3
},
{
"RightIdx": 59,
"Match": 50,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 60,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 54,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl\", hash = \"sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2\", size = 162722, upload-time = \"2025-07-14T03:29:26.863Z\" },",
"Comments": null
},
{
"Match": 53,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 61
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 64,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " name = \"charset-normalizer\"",
"Comments": null
},
{
"Match": 60,
"Type": 3,
"Content": "-version = \"3.4.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0
},
{
"Content": "+version = \"3.4.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66,
"Match": 59,
"Type": 2
},
{
"LeftIdx": 67,
"RightIdx": 67,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 63,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz\", hash = \"sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63\", size = 126367, upload-time = \"2025-05-02T08:34:42.01Z\" }"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 62,
"Type": 2
},
{
"RightIdx": 69,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/85/4c40d00dcc6284a1c1ad5de5e0996b06f39d8232f1031cd23c2f5c07ee86/charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2\", size = 198794, upload-time = \"2025-05-02T08:32:11.945Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/41/d9/7a6c0b9db952598e97e93cbdfcb91bacd89b9b88c7c983250a77c008703c/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645\", size = 142846, upload-time = \"2025-05-02T08:32:13.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71
},
{
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/82/a37989cda2ace7e37f36c1a8ed16c58cf48965a79c2142713244bf945c89/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd\", size = 153350, upload-time = \"2025-05-02T08:32:15.873Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/68/a576b31b694d07b53807269d05ec3f6f1093e9545e8607121995ba7a8313/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8\", size = 145657, upload-time = \"2025-05-02T08:32:17.283Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/9b/ad67f03d74554bed3aefd56fe836e1623a50780f7c998d00ca128924a499/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f\", size = 147260, upload-time = \"2025-05-02T08:32:18.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74
},
{
"RightIdx": 0,
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/e6/8aebae25e328160b20e31a7e9929b1578bbdc7f42e66f46595a432f8539e/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7\", size = 149164, upload-time = \"2025-05-02T08:32:20.333Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75
},
{
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/f2/b3c2f07dbcc248805f10e67a0262c93308cfa149a4cd3d1fe01f593e5fd2/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9\", size = 144571, upload-time = \"2025-05-02T08:32:21.86Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76
},
{
"LeftIdx": 77,
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/60/5b/c3f3a94bc345bc211622ea59b4bed9ae63c00920e2e8f11824aa5708e8b7/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544\", size = 151952, upload-time = \"2025-05-02T08:32:23.434Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/4d/ff460c8b474122334c2fa394a3f99a04cf11c646da895f81402ae54f5c42/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82\", size = 155959, upload-time = \"2025-05-02T08:32:24.993Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0,
"Match": 113
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a2/2b/b964c6a2fda88611a1fe3d4c400d39c66a42d6c169c924818c848f922415/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0\", size = 153030, upload-time = \"2025-05-02T08:32:26.435Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/59/2e/d3b9811db26a5ebf444bc0fa4f4be5aa6d76fc6e1c0fd537b16c14e849b6/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5\", size = 148015, upload-time = \"2025-05-02T08:32:28.376Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/90/07/c5fd7c11eafd561bb51220d600a788f1c8d77c5eef37ee49454cc5c35575/charset_normalizer-3.4.2-cp311-cp311-win32.whl\", hash = \"sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a\", size = 98106, upload-time = \"2025-05-02T08:32:30.281Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/05/5e33dbef7e2f773d672b6d79f10ec633d4a71cd96db6673625838a4fd532/charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28\", size = 105402, upload-time = \"2025-05-02T08:32:32.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": 117,
"Type": 3
},
{
"LeftIdx": 83,
"RightIdx": 0,
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7\", size = 199936, upload-time = \"2025-05-02T08:32:33.712Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3\", size = 143790, upload-time = \"2025-05-02T08:32:35.768Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a\", size = 153924, upload-time = \"2025-05-02T08:32:37.284Z\" },",
"Comments": null
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": 121,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214\", size = 146626, upload-time = \"2025-05-02T08:32:38.803Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": 122,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a\", size = 148567, upload-time = \"2025-05-02T08:32:40.251Z\" },"
},
{
"RightIdx": 0,
"Match": 123,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd\", size = 150957, upload-time = \"2025-05-02T08:32:41.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88
},
{
"LeftIdx": 89,
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981\", size = 145408, upload-time = \"2025-05-02T08:32:43.709Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c\", size = 153399, upload-time = \"2025-05-02T08:32:46.197Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": 125
},
{
"LeftIdx": 91,
"RightIdx": 0,
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b\", size = 156815, upload-time = \"2025-05-02T08:32:48.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d\", size = 154537, upload-time = \"2025-05-02T08:32:49.719Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f\", size = 149565, upload-time = \"2025-05-02T08:32:51.404Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl\", hash = \"sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c\", size = 98357, upload-time = \"2025-05-02T08:32:53.079Z\" },"
},
{
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e\", size = 105776, upload-time = \"2025-05-02T08:32:54.573Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0
},
{
"LeftIdx": 96,
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0\", size = 199622, upload-time = \"2025-05-02T08:32:56.363Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf\", size = 143435, upload-time = \"2025-05-02T08:32:58.551Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e\", size = 153653, upload-time = \"2025-05-02T08:33:00.342Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0,
"Match": 133
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0,
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1\", size = 146231, upload-time = \"2025-05-02T08:33:02.081Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c\", size = 148243, upload-time = \"2025-05-02T08:33:04.063Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691\", size = 150442, upload-time = \"2025-05-02T08:33:06.418Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": 136,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": 137,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0\", size = 145147, upload-time = \"2025-05-02T08:33:08.183Z\" },"
},
{
"LeftIdx": 103,
"RightIdx": 0,
"Match": 138,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b\", size = 153057, upload-time = \"2025-05-02T08:33:09.986Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff\", size = 156454, upload-time = \"2025-05-02T08:33:11.814Z\" },"
},
{
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b\", size = 154174, upload-time = \"2025-05-02T08:33:13.707Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105
},
{
"LeftIdx": 106,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148\", size = 149166, upload-time = \"2025-05-02T08:33:15.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 107,
"RightIdx": 0,
"Match": 142,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl\", hash = \"sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7\", size = 98064, upload-time = \"2025-05-02T08:33:17.06Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 0,
"Match": 143,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980\", size = 105641, upload-time = \"2025-05-02T08:33:18.753Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl\", hash = \"sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0\", size = 52626, upload-time = \"2025-05-02T08:34:40.053Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 109,
"RightIdx": 0,
"Match": 144
},
{
"LeftIdx": 0,
"RightIdx": 70,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8\", size = 206988, upload-time = \"2025-10-14T04:40:33.79Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0\", size = 147324, upload-time = \"2025-10-14T04:40:34.961Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71,
"Match": 66,
"Type": 2
},
{
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3\", size = 142742, upload-time = \"2025-10-14T04:40:36.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc\", size = 160863, upload-time = \"2025-10-14T04:40:37.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897\", size = 157837, upload-time = \"2025-10-14T04:40:38.435Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": 69
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381\", size = 151550, upload-time = \"2025-10-14T04:40:40.053Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815\", size = 149162, upload-time = \"2025-10-14T04:40:41.163Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0\", size = 150019, upload-time = \"2025-10-14T04:40:42.276Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 77,
"Match": 72
},
{
"RightIdx": 78,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl\", hash = \"sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161\", size = 143310, upload-time = \"2025-10-14T04:40:43.439Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 79,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4\", size = 162022, upload-time = \"2025-10-14T04:40:44.547Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89\", size = 149383, upload-time = \"2025-10-14T04:40:46.018Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80,
"Match": 75,
"Type": 2
},
{
"Match": 76,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569\", size = 159098, upload-time = \"2025-10-14T04:40:47.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224\", size = 152991, upload-time = \"2025-10-14T04:40:48.246Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": 77,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 83,
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl\", hash = \"sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a\", size = 99456, upload-time = \"2025-10-14T04:40:49.376Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 79,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016\", size = 106978, upload-time = \"2025-10-14T04:40:50.844Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 84
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85,
"Match": 80,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1\", size = 99969, upload-time = \"2025-10-14T04:40:52.272Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 86,
"Match": 81,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394\", size = 208425, upload-time = \"2025-10-14T04:40:53.353Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": 82,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25\", size = 148162, upload-time = \"2025-10-14T04:40:54.558Z\" },",
"Comments": null
},
{
"RightIdx": 88,
"Match": 83,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef\", size = 144558, upload-time = \"2025-10-14T04:40:55.677Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 89,
"Match": 84,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d\", size = 161497, upload-time = \"2025-10-14T04:40:57.217Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 90,
"Match": 85,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8\", size = 159240, upload-time = \"2025-10-14T04:40:58.358Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 86,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86\", size = 153471, upload-time = \"2025-10-14T04:40:59.468Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": 87,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a\", size = 150864, upload-time = \"2025-10-14T04:41:00.623Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f\", size = 150647, upload-time = \"2025-10-14T04:41:01.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 93,
"Match": 88,
"Type": 2
},
{
"Match": 89,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl\", hash = \"sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc\", size = 145110, upload-time = \"2025-10-14T04:41:03.231Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 94
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 95,
"Match": 90,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf\", size = 162839, upload-time = \"2025-10-14T04:41:04.715Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 96,
"Match": 91,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15\", size = 150667, upload-time = \"2025-10-14T04:41:05.827Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 92,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9\", size = 160535, upload-time = \"2025-10-14T04:41:06.938Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 98,
"Match": 93,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0\", size = 154816, upload-time = \"2025-10-14T04:41:08.101Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 99,
"Match": 94,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl\", hash = \"sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26\", size = 99694, upload-time = \"2025-10-14T04:41:09.23Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 100,
"Match": 95,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525\", size = 107131, upload-time = \"2025-10-14T04:41:10.467Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3\", size = 100390, upload-time = \"2025-10-14T04:41:11.915Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 101,
"Match": 96,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 102,
"Match": 97,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },"
},
{
"RightIdx": 103,
"Match": 98,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 104,
"Match": 99
},
{
"LeftIdx": 0,
"RightIdx": 105,
"Match": 100,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 106,
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 107,
"Match": 102
},
{
"RightIdx": 108,
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 109,
"Match": 104,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 110,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 111,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 112,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 113,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 114,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 115,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 116,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 117,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl\", hash = \"sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd\", size = 207746, upload-time = \"2025-10-14T04:41:33.773Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 118,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb\", size = 147889, upload-time = \"2025-10-14T04:41:34.897Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 119,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 120,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e\", size = 143641, upload-time = \"2025-10-14T04:41:36.116Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 121,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14\", size = 160779, upload-time = \"2025-10-14T04:41:37.229Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 122,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191\", size = 159035, upload-time = \"2025-10-14T04:41:38.368Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838\", size = 152542, upload-time = \"2025-10-14T04:41:39.862Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 123
},
{
"LeftIdx": 0,
"RightIdx": 124,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6\", size = 149524, upload-time = \"2025-10-14T04:41:41.319Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e\", size = 150395, upload-time = \"2025-10-14T04:41:42.539Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": -1
},
{
"RightIdx": 126,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl\", hash = \"sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c\", size = 143680, upload-time = \"2025-10-14T04:41:43.661Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 127,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090\", size = 162045, upload-time = \"2025-10-14T04:41:44.821Z\" },"
},
{
"RightIdx": 128,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152\", size = 149687, upload-time = \"2025-10-14T04:41:46.442Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 129,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl\", hash = \"sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828\", size = 160014, upload-time = \"2025-10-14T04:41:47.631Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 130,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec\", size = 154044, upload-time = \"2025-10-14T04:41:48.81Z\" },"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl\", hash = \"sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9\", size = 99940, upload-time = \"2025-10-14T04:41:49.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 131
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c\", size = 107104, upload-time = \"2025-10-14T04:41:51.051Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 133,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2\", size = 100743, upload-time = \"2025-10-14T04:41:52.122Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 134,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 135
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 136,
"Match": 0,
"Type": 1
},
{
"RightIdx": 137,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112
},
{
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113
},
{
"Content": "-version = \"8.2.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 0,
"Match": 175,
"Type": 3
},
{
"Content": "+version = \"8.3.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139,
"Match": 174,
"Type": 2
},
{
"LeftIdx": 115,
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 116,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"LeftIdx": 117,
"RightIdx": 142,
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 118,
"RightIdx": 143,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e9/87/105111999772ec9730e3d4d910c723ea9763ece2ec441533a5cea1e87e3c/click-8.2.2.tar.gz\", hash = \"sha256:068616e6ef9705a07b6db727cb9c248f4eb9dae437a30239f56fa94b18b852ef\", size = 263977, upload-time = \"2025-08-02T02:23:41.102Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 0,
"Match": 181,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 144,
"Match": 180,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120,
"RightIdx": 145,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/85/e7297e34133ae1cfde3bffd30c24e1ef055248251baa877834e048687a28/click-8.2.2-py3-none-any.whl\", hash = \"sha256:52e1e9f5d3db8c85aa76968c7c67ed41ddbacb167f43201511c8fd61eb5ba2ca\", size = 103900, upload-time = \"2025-08-02T02:23:39.299Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 0,
"Match": 184,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 146,
"Match": 183,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 147,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 148
},
{
"RightIdx": 149,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LeftIdx": 132,
"RightIdx": 157,
"LeftHunkSize": 116,
"RightHunkSize": 128,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 124,
"LastRightIdx": 149
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -132,116 +157,128 @@ wheels = [",
"Comments": null
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 157,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 133,
"RightIdx": 158,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 159,
"Match": 0,
"Type": 1
},
{
"Content": "-version = \"7.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 160,
"Match": 4,
"Type": 2,
"Content": "+version = \"7.13.4\"",
"Comments": null
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 161,
"Match": 0
},
{
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/87/0e/66dbd4c6a7f0758a8d18044c048779ba21fb94856e1edcf764bd5403e710/coverage-7.10.1.tar.gz\", hash = \"sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57\", size = 819938, upload-time = \"2025-07-27T14:13:39.045Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 162,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null
},
{
"LeftIdx": 138,
"RightIdx": 163,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/8e/ef088112bd1b26e2aa931ee186992b3e42c222c64f33e381432c8ee52aae/coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f\", size = 214747, upload-time = \"2025-07-27T14:11:18.217Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": 77,
"Type": 3
},
{
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/76/a1e46f3c6e0897758eb43af88bb3c763cb005f4950769f7b553e22aa5f89/coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1\", size = 215128, upload-time = \"2025-07-27T14:11:19.706Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/4d/903bafb371a8c887826ecc30d3977b65dfad0e1e66aa61b7e173de0828b0/coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437\", size = 245140, upload-time = \"2025-07-27T14:11:21.261Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141
},
{
"LeftIdx": 142,
"RightIdx": 0,
"Match": 80,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/f1/1f8f09536f38394a8698dd08a0e9608a512eacee1d3b771e2d06397f77bf/coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7\", size = 246977, upload-time = \"2025-07-27T14:11:23.15Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/cc/ed6bbc5a3bdb36ae1bca900bbbfdcb23b260ef2767a7b2dab38b92f61adf/coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770\", size = 249140, upload-time = \"2025-07-27T14:11:24.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143
},
{
"RightIdx": 0,
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/10/f5/e881ade2d8e291b60fa1d93d6d736107e940144d80d21a0d4999cff3642f/coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262\", size = 246869, upload-time = \"2025-07-27T14:11:26.156Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": 83,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/b9/6a5665cb8996e3cd341d184bb11e2a8edf01d8dadcf44eb1e742186cf243/coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3\", size = 244899, upload-time = \"2025-07-27T14:11:27.622Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/11/24156776709c4e25bf8a33d6bb2ece9a9067186ddac19990f6560a7f8130/coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0\", size = 245507, upload-time = \"2025-07-27T14:11:29.544Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": 84
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0,
"Match": 85,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/db/a6f0340b7d6802a79928659c9a32bc778ea420e87a61b568d68ac36d45a8/coverage-7.10.1-cp311-cp311-win32.whl\", hash = \"sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be\", size = 217167, upload-time = \"2025-07-27T14:11:31.349Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148,
"RightIdx": 0,
"Match": 86,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f5/6f/1990eb4fd05cea4cfabdf1d587a997ac5f9a8bee883443a1d519a2a848c9/coverage-7.10.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c\", size = 218054, upload-time = \"2025-07-27T14:11:33.202Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/4d/5e061d6020251b20e9b4303bb0b7900083a1a384ec4e5db326336c1c4abd/coverage-7.10.1-cp311-cp311-win_arm64.whl\", hash = \"sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293\", size = 216483, upload-time = \"2025-07-27T14:11:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0,
"Match": 87
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a5/3f/b051feeb292400bd22d071fdf933b3ad389a8cef5c80c7866ed0c7414b9e/coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4\", size = 214934, upload-time = \"2025-07-27T14:11:36.096Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": 89,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/e4/a61b27d5c4c2d185bdfb0bfe9d15ab4ac4f0073032665544507429ae60eb/coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e\", size = 215173, upload-time = \"2025-07-27T14:11:38.005Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/01/40a6ee05b60d02d0bc53742ad4966e39dccd450aafb48c535a64390a3552/coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4\", size = 246190, upload-time = \"2025-07-27T14:11:39.887Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0,
"Match": 90
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 0,
"Match": 91,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/11/ef/a28d64d702eb583c377255047281305dc5a5cfbfb0ee36e721f78255adb6/coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a\", size = 248618, upload-time = \"2025-07-27T14:11:41.841Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/ad/73d018bb0c8317725370c79d69b5c6e0257df84a3b9b781bda27a438a3be/coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe\", size = 250081, upload-time = \"2025-07-27T14:11:43.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0,
"Match": 92
},
{
"Match": 93,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/dd/496adfbbb4503ebca5d5b2de8bed5ec00c0a76558ffc5b834fd404166bc9/coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386\", size = 247990, upload-time = \"2025-07-27T14:11:45.244Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/3c/a9331a7982facfac0d98a4a87b36ae666fe4257d0f00961a3a9ef73e015d/coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6\", size = 246191, upload-time = \"2025-07-27T14:11:47.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156,
"RightIdx": 0,
"Match": 94
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 157,
"RightIdx": 0,
"Match": 95,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0c/75345895013b83f7afe92ec595e15a9a525ede17491677ceebb2ba5c3d85/coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f\", size = 247400, upload-time = \"2025-07-27T14:11:48.643Z\" },",
"Comments": null
},
{
"Match": 96,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/a9/98b268cfc5619ef9df1d5d34fee408ecb1542d9fd43d467e5c2f28668cd4/coverage-7.10.1-cp312-cp312-win32.whl\", hash = \"sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca\", size = 217338, upload-time = \"2025-07-27T14:11:50.258Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 158,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/31/22a5440e4d1451f253c5cd69fdcead65e92ef08cd4ec237b8756dc0b20a7/coverage-7.10.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3\", size = 218125, upload-time = \"2025-07-27T14:11:52.034Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 0,
"Match": 97
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0,
"Match": 98,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/2b/40d9f0ce7ee839f08a43c5bfc9d05cec28aaa7c9785837247f96cbe490b9/coverage-7.10.1-cp312-cp312-win_arm64.whl\", hash = \"sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4\", size = 216523, upload-time = \"2025-07-27T14:11:53.965Z\" },"
},
{
"LeftIdx": 161,
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/72/135ff5fef09b1ffe78dbe6fcf1e16b2e564cd35faeacf3d63d60d887f12d/coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39\", size = 214960, upload-time = \"2025-07-27T14:11:55.959Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 100,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/aa/73a5d1a6fc08ca709a8177825616aa95ee6bf34d522517c2595484a3e6c9/coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7\", size = 215220, upload-time = \"2025-07-27T14:11:57.899Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/40/3124fdd45ed3772a42fc73ca41c091699b38a2c3bd4f9cb564162378e8b6/coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892\", size = 245772, upload-time = \"2025-07-27T14:12:00.422Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": 101,
"Type": 3
},
{
"LeftIdx": 164,
"RightIdx": 0,
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/42/62/a77b254822efa8c12ad59e8039f2bc3df56dc162ebda55e1943e35ba31a5/coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7\", size = 248116, upload-time = \"2025-07-27T14:12:03.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 165,
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1d/01/8101f062f472a3a6205b458d18ef0444a63ae5d36a8a5ed5dd0f6167f4db/coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994\", size = 249554, upload-time = \"2025-07-27T14:12:04.668Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 104,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/7b/e51bc61573e71ff7275a4f167aecbd16cb010aefdf54bcd8b0a133391263/coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0\", size = 247766, upload-time = \"2025-07-27T14:12:06.234Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166
},
{
"LeftIdx": 167,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/71/1c96d66a51d4204a9d6d12df53c4071d87e110941a2a1fe94693192262f5/coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7\", size = 245735, upload-time = \"2025-07-27T14:12:08.305Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/d5/efbc2ac4d35ae2f22ef6df2ca084c60e13bd9378be68655e3268c80349ab/coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7\", size = 247118, upload-time = \"2025-07-27T14:12:09.903Z\" },"
},
{
"LeftIdx": 169,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/22/073848352bec28ca65f2b6816b892fcf9a31abbef07b868487ad15dd55f1/coverage-7.10.1-cp313-cp313-win32.whl\", hash = \"sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7\", size = 217381, upload-time = \"2025-07-27T14:12:11.535Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 170,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/df/df6a0ff33b042f000089bd11b6bb034bab073e2ab64a56e78ed882cba55d/coverage-7.10.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e\", size = 218152, upload-time = \"2025-07-27T14:12:13.182Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 171,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/e3/5085ca849a40ed6b47cdb8f65471c2f754e19390b5a12fa8abd25cbfaa8f/coverage-7.10.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4\", size = 216559, upload-time = \"2025-07-27T14:12:14.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0,
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/93/58714efbfdeb547909feaabe1d67b2bdd59f0597060271b9c548d5efb529/coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72\", size = 215677, upload-time = \"2025-07-27T14:12:16.68Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0c/18eaa5897e7e8cb3f8c45e563e23e8a85686b4585e29d53cacb6bc9cb340/coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af\", size = 215899, upload-time = \"2025-07-27T14:12:18.758Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173,
"RightIdx": 0,
"Match": 111,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c1/9d1affacc3c75b5a184c140377701bbf14fc94619367f07a269cd9e4fed6/coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7\", size = 257140, upload-time = \"2025-07-27T14:12:20.357Z\" },"
},
{
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/0f/339bc6b8fa968c346df346068cca1f24bdea2ddfa93bb3dc2e7749730962/coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759\", size = 259005, upload-time = \"2025-07-27T14:12:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175
},
{
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/22/89390864b92ea7c909079939b71baba7e5b42a76bf327c1d615bd829ba57/coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324\", size = 261143, upload-time = \"2025-07-27T14:12:23.746Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/56/3d04d89017c0c41c7a71bd69b29699d919b6bbf2649b8b2091240b97dd6a/coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53\", size = 258735, upload-time = \"2025-07-27T14:12:25.73Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/40/312252c8afa5ca781063a09d931f4b9409dc91526cd0b5a2b84143ffafa2/coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f\", size = 256871, upload-time = \"2025-07-27T14:12:27.767Z\" },"
},
{
"Match": 117,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/2b/564947d5dede068215aaddb9e05638aeac079685101462218229ddea9113/coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd\", size = 257692, upload-time = \"2025-07-27T14:12:29.347Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/93/1b/c8a867ade85cb26d802aea2209b9c2c80613b9c122baa8c8ecea6799648f/coverage-7.10.1-cp313-cp313t-win32.whl\", hash = \"sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c\", size = 218059, upload-time = \"2025-07-27T14:12:31.076Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0,
"Match": 118,
"Type": 3
},
{
"LeftIdx": 181,
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/fe/cd4ab40570ae83a516bf5e754ea4388aeedd48e660e40c50b7713ed4f930/coverage-7.10.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18\", size = 219150, upload-time = \"2025-07-27T14:12:32.746Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/16/6e5ed5854be6d70d0c39e9cb9dd2449f2c8c34455534c32c1a508c7dbdb5/coverage-7.10.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4\", size = 217014, upload-time = \"2025-07-27T14:12:34.406Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 121,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/54/8e/6d0bfe9c3d7121cf936c5f8b03e8c3da1484fb801703127dba20fb8bd3c7/coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl\", hash = \"sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c\", size = 214951, upload-time = \"2025-07-27T14:12:36.069Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 183
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f2/29/e3e51a8c653cf2174c60532aafeb5065cea0911403fa144c9abe39790308/coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e\", size = 215229, upload-time = \"2025-07-27T14:12:37.759Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184,
"RightIdx": 0,
"Match": 122
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0,
"Match": 123,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e0/59/3c972080b2fa18b6c4510201f6d4dc87159d450627d062cd9ad051134062/coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b\", size = 245738, upload-time = \"2025-07-27T14:12:39.453Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/2e/04/fc0d99d3f809452654e958e1788454f6e27b34e43f8f8598191c8ad13537/coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41\", size = 248045, upload-time = \"2025-07-27T14:12:41.387Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": 124,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": 125,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/2e/afcbf599e77e0dfbf4c97197747250d13d397d27e185b93987d9eaac053d/coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f\", size = 249666, upload-time = \"2025-07-27T14:12:43.056Z\" },"
},
{
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/ae/bc47f7f8ecb7a06cbae2bf86a6fa20f479dd902bc80f57cff7730438059d/coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1\", size = 247692, upload-time = \"2025-07-27T14:12:44.83Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/26/cbfa3092d31ccba8ba7647e4d25753263e818b4547eba446b113d7d1efdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2\", size = 245536, upload-time = \"2025-07-27T14:12:46.527Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/56/77/9c68e92500e6a1c83d024a70eadcc9a173f21aadd73c4675fe64c9c43fdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4\", size = 246954, upload-time = \"2025-07-27T14:12:49.279Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0,
"Match": 128
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7f/a5/ba96671c5a669672aacd9877a5987c8551501b602827b4e84256da2a30a7/coverage-7.10.1-cp314-cp314-win32.whl\", hash = \"sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613\", size = 217616, upload-time = \"2025-07-27T14:12:51.214Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191,
"RightIdx": 0,
"Match": 129
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/3c/e1e1eb95fc1585f15a410208c4795db24a948e04d9bde818fe4eb893bc85/coverage-7.10.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e\", size = 218412, upload-time = \"2025-07-27T14:12:53.429Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/85/7e1e5be2cb966cba95566ba702b13a572ca744fbb3779df9888213762d67/coverage-7.10.1-cp314-cp314-win_arm64.whl\", hash = \"sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652\", size = 216776, upload-time = \"2025-07-27T14:12:55.482Z\" },"
},
{
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0f/5bb8f29923141cca8560fe2217679caf4e0db643872c1945ac7d8748c2a7/coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl\", hash = \"sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894\", size = 215698, upload-time = \"2025-07-27T14:12:57.225Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 194,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/29/547038ffa4e8e4d9e82f7dfc6d152f75fcdc0af146913f0ba03875211f03/coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5\", size = 215902, upload-time = \"2025-07-27T14:12:59.071Z\" },"
},
{
"RightIdx": 0,
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/8a/7aaa8fbfaed900147987a424e112af2e7790e1ac9cd92601e5bd4e1ba60a/coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2\", size = 257230, upload-time = \"2025-07-27T14:13:01.248Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 197,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/1d/c252b5ffac44294e23a0d79dd5acf51749b39795ccc898faeabf7bee903f/coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb\", size = 259194, upload-time = \"2025-07-27T14:13:03.247Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/ad/6c8d9f83d08f3bac2e7507534d0c48d1a4f52c18e6f94919d364edbdfa8f/coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b\", size = 261316, upload-time = \"2025-07-27T14:13:04.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 198,
"RightIdx": 0,
"Match": 136,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0,
"Match": 137,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/4e/f9bbf3a36c061e2e0e0f78369c006d66416561a33d2bee63345aee8ee65e/coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea\", size = 258794, upload-time = \"2025-07-27T14:13:06.715Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 200,
"RightIdx": 0,
"Match": 138,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/87/82/e600bbe78eb2cb0541751d03cef9314bcd0897e8eea156219c39b685f869/coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd\", size = 256869, upload-time = \"2025-07-27T14:13:08.933Z\" },",
"Comments": null
},
{
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/5d/2fc9a9236c5268f68ac011d97cd3a5ad16cc420535369bedbda659fdd9b7/coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d\", size = 257765, upload-time = \"2025-07-27T14:13:10.778Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 201,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/05/b4e00b2bd48a2dc8e1c7d2aea7455f40af2e36484ab2ef06deb85883e9fe/coverage-7.10.1-cp314-cp314t-win32.whl\", hash = \"sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47\", size = 218420, upload-time = \"2025-07-27T14:13:12.882Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 203,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/fb/d21d05f33ea27ece327422240e69654b5932b0b29e7fbc40fbab3cf199bf/coverage-7.10.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651\", size = 219536, upload-time = \"2025-07-27T14:13:14.718Z\" },"
},
{
"LeftIdx": 204,
"RightIdx": 0,
"Match": 142,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/68/7fea94b141281ed8be3d1d5c4319a97f2befc3e487ce33657fc64db2c45e/coverage-7.10.1-cp314-cp314t-win_arm64.whl\", hash = \"sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab\", size = 217190, upload-time = \"2025-07-27T14:13:16.85Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 143,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/64/922899cff2c0fd3496be83fa8b81230f5a8d82a2ad30f98370b133c2c83b/coverage-7.10.1-py3-none-any.whl\", hash = \"sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7\", size = 206597, upload-time = \"2025-07-27T14:13:37.221Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 164,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053\", size = 219278, upload-time = \"2026-02-09T12:56:31.673Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 165,
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11\", size = 219783, upload-time = \"2026-02-09T12:56:33.104Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa\", size = 250200, upload-time = \"2026-02-09T12:56:34.474Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166,
"Match": 12
},
{
"LeftIdx": 0,
"RightIdx": 167,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7\", size = 252114, upload-time = \"2026-02-09T12:56:35.749Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 168,
"Match": 14,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00\", size = 254220, upload-time = \"2026-02-09T12:56:37.796Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 169,
"Match": 15,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef\", size = 256164, upload-time = \"2026-02-09T12:56:39.016Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 170,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903\", size = 250325, upload-time = \"2026-02-09T12:56:40.668Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f\", size = 251913, upload-time = \"2026-02-09T12:56:41.97Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171,
"Match": 17
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 172,
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299\", size = 249974, upload-time = \"2026-02-09T12:56:43.323Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 173,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505\", size = 253741, upload-time = \"2026-02-09T12:56:45.155Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6\", size = 249695, upload-time = \"2026-02-09T12:56:46.636Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 174
},
{
"LeftIdx": 0,
"RightIdx": 175,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9\", size = 250599, upload-time = \"2026-02-09T12:56:48.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl\", hash = \"sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9\", size = 221780, upload-time = \"2026-02-09T12:56:50.479Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 176,
"Match": 22,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 177,
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f\", size = 222715, upload-time = \"2026-02-09T12:56:51.815Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 178,
"Match": 24,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f\", size = 221385, upload-time = \"2026-02-09T12:56:53.194Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 179,
"Match": 25,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459\", size = 219449, upload-time = \"2026-02-09T12:56:54.889Z\" },"
},
{
"RightIdx": 180,
"Match": 26,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3\", size = 219810, upload-time = \"2026-02-09T12:56:56.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 181,
"Match": 27,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634\", size = 251308, upload-time = \"2026-02-09T12:56:57.858Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3\", size = 254052, upload-time = \"2026-02-09T12:56:59.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 182,
"Match": 28
},
{
"LeftIdx": 0,
"RightIdx": 183,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa\", size = 255165, upload-time = \"2026-02-09T12:57:01.287Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3\", size = 257432, upload-time = \"2026-02-09T12:57:02.637Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 184
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 185,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a\", size = 251716, upload-time = \"2026-02-09T12:57:04.056Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 186,
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7\", size = 253089, upload-time = \"2026-02-09T12:57:05.503Z\" },"
},
{
"RightIdx": 187,
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc\", size = 251232, upload-time = \"2026-02-09T12:57:06.879Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 188,
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47\", size = 255299, upload-time = \"2026-02-09T12:57:08.245Z\" },",
"Comments": null
},
{
"RightIdx": 189,
"Match": 35,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985\", size = 250796, upload-time = \"2026-02-09T12:57:10.142Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 190,
"Match": 36,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0\", size = 252673, upload-time = \"2026-02-09T12:57:12.197Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 37,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl\", hash = \"sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246\", size = 221990, upload-time = \"2026-02-09T12:57:14.085Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 191
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126\", size = 222800, upload-time = \"2026-02-09T12:57:15.944Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 192,
"Match": 38,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 193,
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d\", size = 221415, upload-time = \"2026-02-09T12:57:17.497Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 194,
"Match": 40,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 195,
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 196,
"Match": 42,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 197,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 198,
"Match": 44,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 199,
"Match": 45,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 200,
"Match": 46
},
{
"LeftIdx": 0,
"RightIdx": 201,
"Match": 47,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 202,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 203,
"Match": 49
},
{
"RightIdx": 204,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 205,
"Match": 51,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 206,
"Match": 52,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 207,
"Match": 53,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 54,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 208
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 209,
"Match": 55
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 210,
"Match": 56
},
{
"RightIdx": 211,
"Match": 57,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 212,
"Match": 58,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 213,
"Match": 59,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 214,
"Match": 60,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },"
},
{
"RightIdx": 215,
"Match": 61,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 216
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 217,
"Match": 63
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 218,
"Match": 64
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 219,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 220,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 221,
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 222,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 223,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 224,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590/coverage-7.13.4-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601\", size = 219522, upload-time = \"2026-02-09T12:58:08.623Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 225,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60/coverage-7.13.4-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689\", size = 219855, upload-time = \"2026-02-09T12:58:10.176Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70/coverage-7.13.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c\", size = 250887, upload-time = \"2026-02-09T12:58:12.503Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 226
},
{
"LeftIdx": 0,
"RightIdx": 227,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab/coverage-7.13.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129\", size = 253396, upload-time = \"2026-02-09T12:58:14.615Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537/coverage-7.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552\", size = 254745, upload-time = \"2026-02-09T12:58:16.162Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 228,
"Match": 74
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 229,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff/coverage-7.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a\", size = 257055, upload-time = \"2026-02-09T12:58:17.892Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 230,
"Match": 76,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356\", size = 250911, upload-time = \"2026-02-09T12:58:19.495Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 231,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71\", size = 252754, upload-time = \"2026-02-09T12:58:21.064Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5\", size = 250720, upload-time = \"2026-02-09T12:58:22.622Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98\", size = 254994, upload-time = \"2026-02-09T12:58:24.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 233
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5\", size = 250531, upload-time = \"2026-02-09T12:58:26.271Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 234
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0\", size = 252189, upload-time = \"2026-02-09T12:58:27.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 235,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl\", hash = \"sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb\", size = 222258, upload-time = \"2026-02-09T12:58:29.441Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 236,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505\", size = 223073, upload-time = \"2026-02-09T12:58:31.026Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 237,
"Match": -1
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2\", size = 221638, upload-time = \"2026-02-09T12:58:32.599Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 238,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl\", hash = \"sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056\", size = 220246, upload-time = \"2026-02-09T12:58:34.181Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 239,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc\", size = 220514, upload-time = \"2026-02-09T12:58:35.704Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 240,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 241,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9\", size = 261877, upload-time = \"2026-02-09T12:58:37.864Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 242,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf\", size = 264004, upload-time = \"2026-02-09T12:58:39.492Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 243,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55\", size = 266408, upload-time = \"2026-02-09T12:58:41.852Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 244,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72\", size = 267544, upload-time = \"2026-02-09T12:58:44.093Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 245,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a\", size = 260980, upload-time = \"2026-02-09T12:58:45.721Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 246,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6\", size = 263871, upload-time = \"2026-02-09T12:58:47.334Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3\", size = 261472, upload-time = \"2026-02-09T12:58:48.995Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 247,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750\", size = 265210, upload-time = \"2026-02-09T12:58:51.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 248,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl\", hash = \"sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39\", size = 260319, upload-time = \"2026-02-09T12:58:53.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 249
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0\", size = 262638, upload-time = \"2026-02-09T12:58:55.258Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 251,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl\", hash = \"sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea\", size = 223040, upload-time = \"2026-02-09T12:58:56.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 252,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl\", hash = \"sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932\", size = 224148, upload-time = \"2026-02-09T12:58:58.645Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl\", hash = \"sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b\", size = 222172, upload-time = \"2026-02-09T12:59:00.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 253,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 254,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206,
"RightIdx": 255
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 256,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 208,
"RightIdx": 257,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 209,
"RightIdx": 258,
"Match": 0,
"Type": 1,
"Content": " name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 173,
"Type": 3,
"Content": "-version = \"0.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 259,
"Match": 172,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211,
"RightIdx": 260,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Match": 176,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz\", hash = \"sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0\", size = 186976, upload-time = \"2025-04-16T00:41:48.867Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 212,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 261,
"Match": 175,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 262,
"Match": 0
},
{
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl\", hash = \"sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049\", size = 119668, upload-time = \"2025-04-16T00:41:47.671Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0
},
{
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 216,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 217,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 218,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"exceptiongroup\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 219,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 221,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { name = \"typing-extensions\", marker = \"python_full_version < '3.13'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 223,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz\", hash = \"sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88\", size = 29749, upload-time = \"2025-05-10T17:42:51.123Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = ["
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl\", hash = \"sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10\", size = 16674, upload-time = \"2025-05-10T17:42:49.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 263,
"Match": 178,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 264
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 228,
"RightIdx": 265,
"Match": 0,
"Type": 1
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 266,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 267,
"Match": 0,
"Type": 1,
"Content": " name = \"idna\"",
"Comments": null
},
{
"LeftIdx": 231,
"RightIdx": 0,
"Match": 197,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 268,
"Match": 196,
"Type": 2,
"Content": "+version = \"3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 269,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490, upload-time = \"2024-09-15T18:07:39.745Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": 200
},
{
"RightIdx": 270,
"Match": 199,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 234,
"RightIdx": 271,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235,
"RightIdx": 0,
"Match": 203,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442, upload-time = \"2024-09-15T18:07:37.964Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 272,
"Match": 202
},
{
"LeftIdx": 236,
"RightIdx": 273,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 237,
"RightIdx": 274
},
{
"RightIdx": 275,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238
},
{
"Content": " name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 276,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 240,
"RightIdx": 0,
"Match": 209,
"Type": 3,
"Content": "-version = \"2.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 277,
"Match": 208,
"Type": 2,
"Content": "+version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241,
"RightIdx": 278,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242,
"RightIdx": 0,
"Match": 212,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz\", hash = \"sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7\", size = 4793, upload-time = \"2025-03-19T20:09:59.721Z\" }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 279,
"Match": 211,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 280,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 0,
"Match": 215,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl\", hash = \"sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760\", size = 6050, upload-time = \"2025-03-19T20:10:01.071Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 281,
"Match": 214
},
{
"RightIdx": 282,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245
},
{
"LeftIdx": 246,
"RightIdx": 283,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 284,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -249,31 +286,8 @@ name = \"ipilot\"",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 247,
"LastRightIdx": 284,
"LeftIdx": 249,
"RightIdx": 286,
"LeftHunkSize": 31,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "uv.lock"
}
},
{
"RightIdx": 286,
"Match": 0,
"Type": 1,
"Content": " version = \"0.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249
},
{
"Content": " source = { editable = \".\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 250,
"RightIdx": 287,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 251,
"RightIdx": 288,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"astroid\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"attrs\" },"
},
{
"LeftIdx": 254,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"charset-normalizer\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 255,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"dill\" },",
"Comments": null
},
{
"LeftIdx": 258,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"exceptiongroup\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 259,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { name = \"iniconfig\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { name = \"lazy-object-proxy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { name = \"mccabe\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 263,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\" },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 267,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pluggy\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"py\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { name = \"pyparsing\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 289,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270
},
{
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"six\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"tabulate\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 290
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 274,
"RightIdx": 0
},
{
"Content": "- { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { name = \"wrapt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 0,
"Match": -1
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277,
"RightIdx": 291,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 292,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279,
"RightIdx": 293,
"Match": 0,
"Type": 1,
"Content": " [package.dev-dependencies]",
"Comments": null
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"RightIdx": 302,
"LeftHunkSize": 67,
"RightHunkSize": 27,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 279,
"LastRightIdx": 293,
"LeftIdx": 288
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -288,67 +302,27 @@ dev = [",
"Comments": null
},
{
"LeftIdx": 288,
"RightIdx": 302,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 289,
"RightIdx": 303,
"Match": 0,
"Type": 1,
"Content": " [package.metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " requires-dist = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 304,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 291,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"==3.3.11\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { name = \"attrs\", specifier = \"==25.3.0\" },",
"Comments": null
},
{
"Content": "- { name = \"certifi\", specifier = \"==2025.7.14\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 294,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"charset-normalizer\", specifier = \"==3.4.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"click\", specifier = \"==8.2.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { name = \"dill\", specifier = \"==0.4.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"exceptiongroup\", specifier = \"==1.3.0\" },"
},
{
"Content": "- { name = \"idna\", specifier = \"==3.10\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"iniconfig\", specifier = \"==2.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 299,
"RightIdx": 0
},
{
"LeftIdx": 300,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"lazy-object-proxy\", specifier = \"==1.11.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 301,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mccabe\", specifier = \"==0.7.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\", specifier = \"==1.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0
},
{
"Content": "- { name = \"packaging\", specifier = \"==25.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 304,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\", specifier = \"==0.12.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\", specifier = \"==4.3.8\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"pluggy\", specifier = \"==1.6.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 307,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"py\", specifier = \"==1.11.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 308,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pyparsing\", specifier = \"==3.2.3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"requests\", specifier = \"==2.32.4\" },"
},
{
"Content": "- { name = \"six\", specifier = \"==1.17.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 311,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tabulate\", specifier = \"==0.9.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\", specifier = \"==2.2.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312
},
{
"LeftIdx": 313,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\", specifier = \"==0.13.3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"urllib3\", specifier = \"==2.5.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"wrapt\", specifier = \"==1.17.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315
},
{
"Content": "+ { name = \"requests\", specifier = \"==2.32.5\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 305,
"Match": 4,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 306,
"Match": 5,
"Type": 2,
"Content": "+ { name = \"tabulate\", specifier = \"==0.10.0\" },",
"Comments": null
},
{
"LeftIdx": 316,
"RightIdx": 307,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317,
"RightIdx": 308,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 318,
"RightIdx": 309,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 310,
"Match": 0,
"Type": 1,
"Content": " dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319
},
{
"LeftIdx": 320,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 311,
"Match": 35,
"Type": 2,
"Content": "+ { name = \"black\", specifier = \">=26.3.0,<26.3.1\" },"
},
{
"Content": " { name = \"coverage\", specifier = \">=7.5.0,<8.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321,
"RightIdx": 312,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.1.0,<4.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 0,
"Match": 39
},
{
"Match": 38,
"Type": 2,
"Content": "+ { name = \"pylint\", specifier = \">=4.0.4,<4.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 313
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 323,
"RightIdx": 314,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { name = \"pytest\", specifier = \">=8.1.1,<9.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 324,
"RightIdx": 0,
"Match": 42
},
{
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 315,
"Match": 41,
"Type": 2
},
{
"LeftIdx": 325,
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests-mock\", specifier = \">=1.12.1,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 317,
"Match": 0
},
{
"LeftIdx": 327,
"RightIdx": 318,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 328,
"RightIdx": 319,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 320,
"Match": 0,
"Type": 1,
"Content": " name = \"isort\""
},
{
"Match": 49,
"Type": 3,
"Content": "-version = \"6.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 0
},
{
"RightIdx": 321,
"Match": 48,
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331,
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Match": 52,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955, upload-time = \"2025-02-26T21:13:16.955Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 323,
"Match": 51,
"Type": 2
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 324,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334,
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186, upload-time = \"2025-02-26T21:13:14.911Z\" },"
},
{
"LeftIdx": 335,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 0
},
{
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"lazy-object-proxy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.11.0\""
},
{
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/57/f9/1f56571ed82fb324f293661690635cf42c41deb8a70a6c9e6edc3e9bb3c8/lazy_object_proxy-1.11.0.tar.gz\", hash = \"sha256:18874411864c9fbbbaa47f9fc1dd7aea754c86cfde21278ef427639d1dd78e9c\", size = 44736, upload-time = \"2025-04-16T16:53:48.482Z\" }"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 342,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = ["
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/f6/eb645ca1ff7408bb69e9b1fe692cce1d74394efdbb40d6207096c0cd8381/lazy_object_proxy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:090935756cc041e191f22f4f9c7fd4fe9a454717067adf5b1bbd2ce3046b556e\", size = 28047, upload-time = \"2025-04-16T16:53:34.679Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/9c/aabbe1e8b99b8b0edb846b49a517edd636355ac97364419d9ba05b8fa19f/lazy_object_proxy-1.11.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:76ec715017f06410f57df442c1a8d66e6b5f7035077785b129817f5ae58810a4\", size = 28440, upload-time = \"2025-04-16T16:53:36.113Z\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4d/24/dae4759469e9cd318fef145f7cfac7318261b47b23a4701aa477b0c3b42c/lazy_object_proxy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:9a9f39098e93a63618a79eef2889ae3cf0605f676cd4797fdfd49fcd7ddc318b\", size = 28142, upload-time = \"2025-04-16T16:53:37.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/0c/645a881f5f27952a02f24584d96f9f326748be06ded2cee25f8f8d1cd196/lazy_object_proxy-1.11.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ee13f67f4fcd044ef27bfccb1c93d39c100046fec1fad6e9a1fcdfd17492aeb3\", size = 28380, upload-time = \"2025-04-16T16:53:39.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 347,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0f/6e004f928f7ff5abae2b8e1f68835a3870252f886e006267702e1efc5c7b/lazy_object_proxy-1.11.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:fd4c84eafd8dd15ea16f7d580758bc5c2ce1f752faec877bb2b1f9f827c329cd\", size = 28149, upload-time = \"2025-04-16T16:53:40.135Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/63/cb/b8363110e32cc1fd82dc91296315f775d37a39df1c1cfa976ec1803dac89/lazy_object_proxy-1.11.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:d2503427bda552d3aefcac92f81d9e7ca631e680a2268cbe62cd6a58de6409b7\", size = 28389, upload-time = \"2025-04-16T16:53:43.612Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 348,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/89/68c50fcfd81e11480cd8ee7f654c9bd790a9053b9a0efe9983d46106f6a9/lazy_object_proxy-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0613116156801ab3fccb9e2b05ed83b08ea08c2517fdc6c6bc0d4697a1a376e3\", size = 28777, upload-time = \"2025-04-16T16:53:41.371Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/d0/7e967689e24de8ea6368ec33295f9abc94b9f3f0cd4571bfe148dc432190/lazy_object_proxy-1.11.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:bb03c507d96b65f617a6337dedd604399d35face2cdf01526b913fb50c4cb6e8\", size = 29598, upload-time = \"2025-04-16T16:53:42.513Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/1e/fb441c07b6662ec1fc92b249225ba6e6e5221b05623cb0131d082f782edc/lazy_object_proxy-1.11.0-py3-none-any.whl\", hash = \"sha256:a56a5093d433341ff7da0e89f9b486031ccd222ec8e52ec84d0ec1cdc819674b\", size = 16635, upload-time = \"2025-04-16T16:53:47.198Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 351,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 325,
"Match": 54,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null
},
{
"LeftIdx": 352,
"RightIdx": 326,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 327,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354,
"RightIdx": 328,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"LastLeftIdx": 354,
"LastRightIdx": 328,
"LeftIdx": 371,
"RightIdx": 345,
"LeftHunkSize": 29,
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -371,29 +345,29 @@ wheels = [",
"Comments": null
},
{
"LeftIdx": 371,
"RightIdx": 345,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 372,
"RightIdx": 346,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 347,
"Match": 0,
"Type": 1,
"Content": " name = \"packaging\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"25.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374
},
{
"RightIdx": 348,
"Match": 4,
"Type": 2,
"Content": "+version = \"26.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375,
"RightIdx": 349,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 376,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz\", hash = \"sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f\", size = 165727, upload-time = \"2025-04-19T11:48:59.673Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 350,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 351,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Match": 11,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl\", hash = \"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484\", size = 66469, upload-time = \"2025-04-19T11:48:57.875Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 352,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null
},
{
"LeftIdx": 379,
"RightIdx": 353,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380,
"RightIdx": 354,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381
},
{
"LeftIdx": 382,
"RightIdx": 356,
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": 17
},
{
"Match": 16,
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 357
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 384,
"RightIdx": 358,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 385,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043, upload-time = \"2023-12-10T22:30:45Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 19,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 359
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386,
"RightIdx": 360,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191, upload-time = \"2023-12-10T22:30:43.14Z\" },"
},
{
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 361
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 362,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"LeftIdx": 389,
"RightIdx": 363,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 390,
"RightIdx": 364,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391,
"RightIdx": 365
},
{
"Content": "-version = \"4.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": 29,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 366,
"Match": 28,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 367,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz\", hash = \"sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc\", size = 21362, upload-time = \"2025-05-07T22:47:42.121Z\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 368,
"Match": 31,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 395,
"RightIdx": 369,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl\", hash = \"sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4\", size = 18567, upload-time = \"2025-05-07T22:47:40.376Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": 35
},
{
"LeftIdx": 0,
"RightIdx": 370,
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 371,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 397
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398,
"RightIdx": 372,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 373,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
}
]
},
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -405,15 +379,6 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 399,
"LastRightIdx": 373,
"LeftIdx": 405,
"RightIdx": 379,
"LeftHunkSize": 15,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0
},
{
"LeftIdx": 405,
"RightIdx": 379,
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 406,
"RightIdx": 380,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 381,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 408,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"py\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 410,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.11.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 411,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz\", hash = \"sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719\", size = 207796, upload-time = \"2021-11-04T17:17:01.377Z\" }"
},
{
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl\", hash = \"sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378\", size = 98708, upload-time = \"2021-11-04T17:17:00.152Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 382
},
{
"Type": 1,
"Content": " name = \"pygments\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 383,
"Match": 0
},
{
"LeftIdx": 419,
"RightIdx": 384,
"Match": 0,
"Type": 1,
"Content": " version = \"2.19.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -425,7 +390,7 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 419,
"LastRightIdx": 384,
"LeftIdx": 425,
"RightIdx": 390,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "uv.lock"
}
},
{
"LeftIdx": 425,
"RightIdx": 390,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426,
"RightIdx": 391,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 392,
"Match": 0
},
{
"Match": 5,
"Type": 3,
"Content": "-version = \"3.3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 393,
"Match": 4,
"Type": 2,
"Content": "+version = \"4.0.5\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 394,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 430,
"RightIdx": 395,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"Type": 1,
"Content": " { name = \"astroid\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 431,
"RightIdx": 396,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -436,9 +401,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 431,
"LastRightIdx": 396,
"LeftIdx": 436,
"RightIdx": 401
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 401,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },"
},
{
"Type": 1,
"Content": " { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437,
"RightIdx": 402,
"Match": 0
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 438,
"RightIdx": 403,
"Match": 0
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3/pylint-3.3.7.tar.gz\", hash = \"sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559\", size = 1520709, upload-time = \"2025-05-04T17:07:51.089Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439
},
{
"LeftIdx": 0,
"RightIdx": 404,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 440,
"RightIdx": 405
},
{
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e8/83/bff755d09e31b5d25cc7fdc4bf3915d1a404e181f1abf0359af376845c24/pylint-3.3.7-py3-none-any.whl\", hash = \"sha256:43860aafefce92fca4cf6b61fe199cdc5ae54ea28f9bf4cd49de267b5195803d\", size = 522565, upload-time = \"2025-05-04T17:07:48.714Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 406,
"Match": 7,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442,
"RightIdx": 407,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 408,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 444,
"RightIdx": 409,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -450,18 +415,9 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LeftIdx": 450,
"RightIdx": 415,
"LeftHunkSize": 18,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 444,
"LastRightIdx": 409
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450,
"RightIdx": 415,
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 416,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 417,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 453,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyparsing\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.2.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 455
},
{
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz\", hash = \"sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be\", size = 1088608, upload-time = \"2025-03-25T05:01:28.114Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 458,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl\", hash = \"sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf\", size = 111120, upload-time = \"2025-03-25T05:01:24.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 459
},
{
"LeftIdx": 460,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462,
"RightIdx": 418,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 463,
"RightIdx": 419,
"Match": 0,
"Type": 1,
"Content": " name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "-version = \"8.4.1\"",
"Comments": null
},
{
"Match": 15,
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 420
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 465,
"RightIdx": 421,
"Match": 0,
"Type": 1
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 422,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 423,
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },"
}
]
},
{
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -470,14 +426,48 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 467,
"LastRightIdx": 423,
"LeftIdx": 470,
"RightIdx": 426,
"LeftHunkSize": 14,
"RightHunkSize": 48,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 470,
"RightIdx": 426,
"Match": 0,
"Type": 1,
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 471,
"RightIdx": 427,
"Match": 0,
"Type": 1,
"Content": " { name = \"pygments\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 472,
"RightIdx": 428,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 473,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz\", hash = \"sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c\", size = 1517714, upload-time = \"2025-06-18T05:48:06.109Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 429,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 474,
"RightIdx": 430,
"Match": 0,
"Type": 1
},
{
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl\", hash = \"sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7\", size = 365474, upload-time = \"2025-06-18T05:48:03.955Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 431,
"Match": 7
},
{
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 433
},
{
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 434,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 436,
"Match": -1
},
{
"RightIdx": 437,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440\", size = 160864, upload-time = \"2026-01-30T01:02:57.882Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 441,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc\", size = 248565, upload-time = \"2026-01-30T01:02:59.912Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d\", size = 260824, upload-time = \"2026-01-30T01:03:01.471Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 442,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 443,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16\", size = 264075, upload-time = \"2026-01-30T01:03:04.143Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6\", size = 103323, upload-time = \"2026-01-30T01:03:05.412Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083\", size = 160663, upload-time = \"2026-01-30T01:03:06.473Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 446,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1\", size = 255626, upload-time = \"2026-01-30T01:03:08.177Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1\", size = 269779, upload-time = \"2026-01-30T01:03:09.756Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 447,
"Match": -1
},
{
"RightIdx": 448,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9\", size = 268076, upload-time = \"2026-01-30T01:03:10.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 449,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68\", size = 103552, upload-time = \"2026-01-30T01:03:12.066Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 450
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 451
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 452,
"Match": -1
},
{
"RightIdx": 453,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 454
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321\", size = 160821, upload-time = \"2026-01-30T01:03:19.684Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 455,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 456,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa\", size = 254263, upload-time = \"2026-01-30T01:03:20.834Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 457,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d\", size = 268071, upload-time = \"2026-01-30T01:03:21.888Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 458,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324\", size = 271716, upload-time = \"2026-01-30T01:03:23.633Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 459,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9\", size = 104539, upload-time = \"2026-01-30T01:03:24.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb\", size = 168474, upload-time = \"2026-01-30T01:03:26.428Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 460,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3\", size = 290473, upload-time = \"2026-01-30T01:03:27.415Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 461,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 462,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975\", size = 303485, upload-time = \"2026-01-30T01:03:28.558Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a\", size = 306698, upload-time = \"2026-01-30T01:03:29.653Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 463,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918\", size = 116287, upload-time = \"2026-01-30T01:03:30.912Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 464,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 465,
"Match": -1
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476,
"RightIdx": 466,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 477,
"RightIdx": 467
},
{
"RightIdx": 468,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 469
},
{
"Type": 3,
"Content": "-version = \"2.32.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 0,
"Match": 48
},
{
"RightIdx": 470,
"Match": 47,
"Type": 2,
"Content": "+version = \"2.32.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 471,
"Match": 0,
"Type": 1
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 472,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483,
"RightIdx": 473,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -485,9 +475,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"LeftIdx": 485,
"RightIdx": 475,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 483,
"LastRightIdx": 473
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485,
"RightIdx": 475,
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486,
"RightIdx": 476
},
{
"RightIdx": 477,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz\", hash = \"sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422\", size = 135258, upload-time = \"2025-06-09T16:43:07.34Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 478,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 489,
"RightIdx": 479,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl\", hash = \"sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c\", size = 64847, upload-time = \"2025-06-09T16:43:05.728Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490,
"RightIdx": 0,
"Match": 8,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 480,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 481,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491
},
{
"RightIdx": 482,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493,
"RightIdx": 483,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -502,139 +492,29 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LeftIdx": 502,
"RightIdx": 492,
"LeftHunkSize": 139,
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 493,
"LastRightIdx": 483
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": " { url = \"https://files.pythonhosted.org/packages/97/ec/889fbc557727da0c34a33850950310240f2040f3b1955175fdb2b36a8910/requests_mock-1.12.1-py2.py3-none-any.whl\", hash = \"sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563\", size = 27695, upload-time = \"2024-03-29T03:54:27.64Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 492,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 503,
"RightIdx": 493,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 504,
"RightIdx": 494,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-name = \"six\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.17.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz\", hash = \"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81\", size = 34031, upload-time = \"2024-12-04T17:35:28.174Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl\", hash = \"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274\", size = 11050, upload-time = \"2024-12-04T17:35:26.475Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 495,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 515,
"RightIdx": 496,
"Match": 0,
"Type": 1,
"Content": " name = \"tabulate\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 16,
"Type": 3,
"Content": "-version = \"0.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 516,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 497,
"Match": 15,
"Type": 2,
"Content": "+version = \"0.10.0\"",
"Comments": null
},
{
"LeftIdx": 517,
"RightIdx": 498,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz\", hash = \"sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c\", size = 81090, upload-time = \"2022-10-06T17:21:48.54Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 0,
"Match": 19,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 499,
"Match": 18,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/46/58/8c37dea7bbf769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6/tabulate-0.10.0.tar.gz\", hash = \"sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d\", size = 91754, upload-time = \"2026-03-04T18:55:34.402Z\" }",
"Comments": null
},
{
"LeftIdx": 519,
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl\", hash = \"sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f\", size = 35252, upload-time = \"2022-10-06T17:21:44.262Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": 61,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-name = \"tomli\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 526,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz\", hash = \"sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff\", size = 17175, upload-time = \"2024-11-27T22:38:36.873Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 528,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 529,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249\", size = 131077, upload-time = \"2024-11-27T22:37:54.956Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6\", size = 123429, upload-time = \"2024-11-27T22:37:56.698Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a\", size = 226067, upload-time = \"2024-11-27T22:37:57.63Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531
},
{
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee\", size = 236030, upload-time = \"2024-11-27T22:37:59.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e\", size = 240898, upload-time = \"2024-11-27T22:38:00.429Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4\", size = 229894, upload-time = \"2024-11-27T22:38:02.094Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106\", size = 245319, upload-time = \"2024-11-27T22:38:03.206Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8\", size = 238273, upload-time = \"2024-11-27T22:38:04.217Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl\", hash = \"sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff\", size = 98310, upload-time = \"2024-11-27T22:38:05.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 538,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b\", size = 108309, upload-time = \"2024-11-27T22:38:06.812Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea\", size = 132762, upload-time = \"2024-11-27T22:38:07.731Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8\", size = 123453, upload-time = \"2024-11-27T22:38:09.384Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 541,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192\", size = 233486, upload-time = \"2024-11-27T22:38:10.329Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222\", size = 242349, upload-time = \"2024-11-27T22:38:11.443Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77\", size = 252159, upload-time = \"2024-11-27T22:38:13.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6\", size = 237243, upload-time = \"2024-11-27T22:38:14.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 545,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd\", size = 259645, upload-time = \"2024-11-27T22:38:15.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e\", size = 244584, upload-time = \"2024-11-27T22:38:17.645Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl\", hash = \"sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98\", size = 98875, upload-time = \"2024-11-27T22:38:19.159Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 548,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4\", size = 109418, upload-time = \"2024-11-27T22:38:20.064Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7\", size = 132708, upload-time = \"2024-11-27T22:38:21.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c\", size = 123582, upload-time = \"2024-11-27T22:38:22.693Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 550,
"RightIdx": 0
},
{
"LeftIdx": 551,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13\", size = 232543, upload-time = \"2024-11-27T22:38:24.367Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281\", size = 241691, upload-time = \"2024-11-27T22:38:26.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272\", size = 251170, upload-time = \"2024-11-27T22:38:27.921Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140\", size = 236530, upload-time = \"2024-11-27T22:38:29.591Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2\", size = 258666, upload-time = \"2024-11-27T22:38:30.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744\", size = 243954, upload-time = \"2024-11-27T22:38:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl\", hash = \"sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec\", size = 98724, upload-time = \"2024-11-27T22:38:32.837Z\" },",
"Comments": null
},
{
"LeftIdx": 558,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69\", size = 109383, upload-time = \"2024-11-27T22:38:34.455Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 559,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl\", hash = \"sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc\", size = 14257, upload-time = \"2024-11-27T22:38:35.385Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 501,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl\", hash = \"sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3\", size = 39814, upload-time = \"2026-03-04T18:55:31.284Z\" },",
"Comments": null
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 560,
"RightIdx": 502,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 503,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 562,
"RightIdx": 504,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 505
},
{
"Match": 67,
"Type": 3,
"Content": "-version = \"0.13.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564,
"RightIdx": 0
},
{
"Match": 66,
"Type": 2,
"Content": "+version = \"0.14.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 506
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565,
"RightIdx": 507,
"Match": 0
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz\", hash = \"sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1\", size = 185207, upload-time = \"2025-06-05T07:13:44.947Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 566,
"RightIdx": 0,
"Match": 70
},
{
"Match": 69,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 508
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 567,
"RightIdx": 509,
"Match": 0,
"Type": 1
},
{
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl\", hash = \"sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0\", size = 38901, upload-time = \"2025-06-05T07:13:43.546Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"typing-extensions\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 0
},
{
"Type": 3,
"Content": "-version = \"4.14.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }"
},
{
"LeftIdx": 575,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz\", hash = \"sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36\", size = 107673, upload-time = \"2025-07-04T13:28:34.16Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl\", hash = \"sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76\", size = 43906, upload-time = \"2025-07-04T13:28:32.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 510,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },",
"Comments": null
},
{
"RightIdx": 511,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578
},
{
"LeftIdx": 579,
"RightIdx": 512,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 580,
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 581,
"RightIdx": 514,
"Match": 0,
"Type": 1,
"Content": " name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 582,
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "-version = \"2.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 515,
"Match": 87,
"Type": 2,
"Content": "+version = \"2.6.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 583,
"RightIdx": 516,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 91,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz\", hash = \"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760\", size = 393185, upload-time = \"2025-06-18T14:07:41.644Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 517,
"Match": 90,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 585,
"RightIdx": 518,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl\", hash = \"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc\", size = 129795, upload-time = \"2025-06-18T14:07:40.39Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586,
"RightIdx": 0,
"Match": 147
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 589
},
{
"Type": 3,
"Content": "-name = \"wrapt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 590,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 591,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.17.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 593,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz\", hash = \"sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3\", size = 55531, upload-time = \"2025-01-14T10:35:45.465Z\" }",
"Comments": null
},
{
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 594,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58\", size = 53308, upload-time = \"2025-01-14T10:33:33.992Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 595,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 596,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/ff/149aba8365fdacef52b31a258c4dc1c57c79759c335eff0b3316a2664a64/wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda\", size = 38488, upload-time = \"2025-01-14T10:33:35.264Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438\", size = 38776, upload-time = \"2025-01-14T10:33:38.28Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 597,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ca/74/336c918d2915a4943501c77566db41d1bd6e9f4dbc317f356b9a244dfe83/wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a\", size = 83776, upload-time = \"2025-01-14T10:33:40.678Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 598,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 599,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/99/c0c844a5ccde0fe5761d4305485297f91d67cf2a1a824c5f282e661ec7ff/wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000\", size = 75420, upload-time = \"2025-01-14T10:33:41.868Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/b0/9fc566b0fe08b282c850063591a756057c3247b2362b9286429ec5bf1721/wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6\", size = 83199, upload-time = \"2025-01-14T10:33:43.598Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9d/4b/71996e62d543b0a0bd95dda485219856def3347e3e9380cc0d6cf10cfb2f/wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b\", size = 82307, upload-time = \"2025-01-14T10:33:48.499Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 601,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/35/0282c0d8789c0dc9bcc738911776c762a701f95cfe113fb8f0b40e45c2b9/wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662\", size = 75025, upload-time = \"2025-01-14T10:33:51.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 0
},
{
"LeftIdx": 603,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/6d/90c9fd2c3c6fee181feecb620d95105370198b6b98a0770cba090441a828/wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72\", size = 81879, upload-time = \"2025-01-14T10:33:52.328Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 604,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/fa/9fb6e594f2ce03ef03eddbdb5f4f90acb1452221a5351116c7c4708ac865/wrapt-1.17.2-cp311-cp311-win32.whl\", hash = \"sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317\", size = 36419, upload-time = \"2025-01-14T10:33:53.551Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 605,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/f8/fb1773491a253cbc123c5d5dc15c86041f746ed30416535f2a8df1f4a392/wrapt-1.17.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3\", size = 38773, upload-time = \"2025-01-14T10:33:56.323Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925\", size = 53799, upload-time = \"2025-01-14T10:33:57.4Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392\", size = 38821, upload-time = \"2025-01-14T10:33:59.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40\", size = 38919, upload-time = \"2025-01-14T10:34:04.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 608,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 609,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d\", size = 88721, upload-time = \"2025-01-14T10:34:07.163Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b\", size = 80899, upload-time = \"2025-01-14T10:34:09.82Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98\", size = 89222, upload-time = \"2025-01-14T10:34:11.258Z\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82\", size = 86707, upload-time = \"2025-01-14T10:34:12.49Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae\", size = 79685, upload-time = \"2025-01-14T10:34:15.043Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9\", size = 87567, upload-time = \"2025-01-14T10:34:16.563Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl\", hash = \"sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9\", size = 36672, upload-time = \"2025-01-14T10:34:17.727Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991\", size = 38865, upload-time = \"2025-01-14T10:34:19.577Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 617,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125\", size = 53800, upload-time = \"2025-01-14T10:34:21.571Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998\", size = 38824, upload-time = \"2025-01-14T10:34:22.999Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5\", size = 38920, upload-time = \"2025-01-14T10:34:25.386Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8\", size = 88690, upload-time = \"2025-01-14T10:34:28.058Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6\", size = 80861, upload-time = \"2025-01-14T10:34:29.167Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc\", size = 89174, upload-time = \"2025-01-14T10:34:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2\", size = 86721, upload-time = \"2025-01-14T10:34:32.91Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b\", size = 79763, upload-time = \"2025-01-14T10:34:34.903Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504\", size = 87585, upload-time = \"2025-01-14T10:34:36.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl\", hash = \"sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a\", size = 36676, upload-time = \"2025-01-14T10:34:37.962Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 626,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845\", size = 38871, upload-time = \"2025-01-14T10:34:39.13Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl\", hash = \"sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192\", size = 56312, upload-time = \"2025-01-14T10:34:40.604Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b\", size = 40062, upload-time = \"2025-01-14T10:34:45.011Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629
},
{
"LeftIdx": 630,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0\", size = 40155, upload-time = \"2025-01-14T10:34:47.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306\", size = 113471, upload-time = \"2025-01-14T10:34:50.934Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb\", size = 101208, upload-time = \"2025-01-14T10:34:52.297Z\" },"
},
{
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681\", size = 109339, upload-time = \"2025-01-14T10:34:53.489Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 634,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6\", size = 110232, upload-time = \"2025-01-14T10:34:55.327Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6\", size = 100476, upload-time = \"2025-01-14T10:34:58.055Z\" },"
},
{
"LeftIdx": 636,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f\", size = 106377, upload-time = \"2025-01-14T10:34:59.3Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl\", hash = \"sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555\", size = 37986, upload-time = \"2025-01-14T10:35:00.498Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 637,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl\", hash = \"sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c\", size = 40750, upload-time = \"2025-01-14T10:35:03.378Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl\", hash = \"sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8\", size = 23594, upload-time = \"2025-01-14T10:35:44.018Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 519,
"Match": 93,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 520,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
}
]
},
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 640,
"LastRightIdx": 520,
"LeftIdx": 641,
"RightIdx": 521
},
"LeftIdx": 0
}
],
"FileName": "uv.lock"
}
],
"IsGenerated": true,
"IsVendored": false,
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"Addition": 271,
"IsSubmodule": false,
"IsProtected": false,
"Name": "uv.lock",
"OldEntryMode": "",
"IsCreated": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"HasChangedSinceLastReview": false,
"OldName": "uv.lock",
"Deletion": 391,
"EntryMode": "",
"IsBin": false
}
],
"IsIncomplete": false,
"Start": ""
},
"ShowMilestonesDashboardPage": true,
"FeedURL": "/repos/pypilot",
"EnableFeed": true,
"CodeIndexerUnavailable": false,
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"IsEmptyRepo": false,
"UploadUrl": "/repos/pypilot/issues/attachments",
"PullRequestCtx": {},
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"PageGlobalData": {
"IsSiteAdmin": false,
"GetNotificationUnreadCount": "[func() int64]",
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]",
"IsSigned": false
},
"Username": "repos",
"HeadCommit": {
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
],
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
},
"UserAndOrgForks": null,
"ShowTwoFactorRequiredMessage": false,
"Permission": {
"AccessMode": 1
},
"CloneButtonShowSSH": false,
"ShowFooterVersion": true,
"EnableActions": true,
"BodyQuery": "",
"ViteModeIsDev": false,
"CommitCount": 64,
"DisableMigrations": false,
"ContextUser": {
"Description": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"ID": 13,
"Type": 1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"LoginSource": 0,
"AllowGitHook": false,
"AvatarEmail": "",
"Visibility": 0,
"Theme": "tangerine-dream",
"Name": "repos",
"Location": "",
"Language": "",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumRepos": 27,
"NumTeams": 6,
"RepoAdminChangeTeamAccess": true,
"LowerName": "repos",
"Email": "",
"Website": "",
"UpdatedUnix": 1776538024,
"LoginName": "",
"UseCustomAvatar": true,
"NumStars": 0,
"Passwd": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsActive": true,
"IsAdmin": false,
"AllowImportLocal": false,
"NumMembers": 7,
"FullName": "",
"LoginType": 0,
"IsRestricted": false,
"MustChangePassword": false,
"Salt": "b7ae788249c01a123b005da3b594e807"
},
"HeadRepo": {
"IsArchived": false,
"IsMirror": false,
"IsTemplate": false,
"Size": 2465934,
"DefaultBranch": "main",
"NumIssues": 2,
"NumOpenPulls": 0,
"IsFsckEnabled": true,
"Avatar": "",
"ID": 25,
"NumOpenActionRuns": 0,
"IsFork": false,
"ForkID": 0,
"TemplateID": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"TrustModel": 0,
"Description": "",
"NumWatches": 5,
"NumStars": 0,
"NumClosedPulls": 436,
"NumOpenProjects": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"NumProjects": 0,
"OwnerName": "repos",
"DefaultWikiBranch": "main",
"NumClosedIssues": 1,
"NumPulls": 436,
"GitSize": 2465934,
"CreatedUnix": 1737063265,
"Name": "pypilot",
"Website": "",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumForks": 0,
"NumOpenMilestones": 0,
"NumClosedActionRuns": 984,
"Status": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"LowerName": "pypilot",
"NumClosedProjects": 0,
"NumActionRuns": 984,
"IsPrivate": false,
"IsEmpty": false,
"BaseRepo": "[*repo.Repository]",
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"OwnerID": 13,
"Owner": {
"Rands": "332424116cb6639ebeac861f16b8e571",
"LastLoginUnix": 0,
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Type": 1,
"IsActive": true,
"AllowCreateOrganization": false,
"Name": "repos",
"UpdatedUnix": 1776538024,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"IsRestricted": false,
"LowerName": "repos",
"FullName": "",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "",
"Location": "",
"CreatedUnix": 1739049474,
"MaxRepoCreation": -1,
"Email": "",
"NumStars": 0,
"Visibility": 0,
"DiffViewStyle": "",
"Description": "",
"LastRepoVisibility": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumTeams": 6,
"Theme": "tangerine-dream",
"Passwd": "",
"Website": "",
"Language": "",
"IsAdmin": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"NumRepos": 27,
"NumMembers": 7,
"ID": 13,
"PasswdHashAlgo": "",
"MustChangePassword": false
},
"Units": [
{
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852,
"RepoID": 25
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856
},
{
"Config": {
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowSquash": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3
}
],
"Topics": null,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589233,
"ArchivedUnix": 0,
"OriginalServiceType": 2,
"NumOpenIssues": 1,
"NumMilestones": 0,
"NumClosedMilestones": 0
},
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Name": "Polski",
"Lang": "pl-PL"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg-BG",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ml-IN",
"Name": "മലയാളം"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Name": "简体中文",
"Lang": "zh-CN"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"SignedUserID": 0,
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"EnableOpenIDSignIn": false,
"BaseCompareRepo": {
"LowerName": "pypilot",
"NumClosedPulls": 436,
"NumOpenPulls": 0,
"NumClosedMilestones": 0,
"BaseRepo": "[*repo.Repository]",
"ID": 25,
"Website": "",
"NumForks": 0,
"NumOpenMilestones": 0,
"IsMirror": false,
"Status": 0,
"TemplateID": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumPulls": 436,
"PrimaryLanguage": "[*repo.LanguageStat]",
"Size": 2465934,
"LFSSize": 0,
"Topics": null,
"Avatar": "",
"NumOpenProjects": 0,
"IsArchived": false,
"IsFsckEnabled": true,
"ObjectFormatName": "sha1",
"NumWatches": 5,
"Owner": {
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"Email": "",
"EmailNotificationsPreference": "",
"Location": "",
"AllowImportLocal": false,
"NumTeams": 6,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Type": 1,
"LastRepoVisibility": false,
"NumMembers": 7,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"AllowCreateOrganization": false,
"Visibility": 0,
"Theme": "tangerine-dream",
"LowerName": "repos",
"FullName": "",
"LoginType": 0,
"LoginName": "",
"CreatedUnix": 1739049474,
"IsAdmin": false,
"NumRepos": 27,
"ProhibitLogin": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"Name": "repos",
"PasswdHashAlgo": "",
"Website": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"IsActive": true,
"IsRestricted": false,
"AvatarEmail": "",
"Passwd": "",
"LoginSource": 0,
"UpdatedUnix": 1776538024,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 0,
"ID": 13,
"MustChangePassword": false,
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false
},
"Description": "",
"DefaultWikiBranch": "main",
"NumMilestones": 0,
"NumOpenIssues": 1,
"NumProjects": 0,
"IsPrivate": false,
"IsEmpty": false,
"Units": [
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"EnableDependencies": true,
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true
},
"CreatedUnix": 1767617704
},
{
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704
},
{
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25
},
{
"Type": 3,
"Config": {
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"AllowMerge": false,
"AutodetectManualMerge": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25
}
],
"IsFork": false,
"CreatedUnix": 1737063265,
"UpdatedUnix": 1776589233,
"OwnerID": 13,
"DefaultBranch": "main",
"NumClosedIssues": 1,
"ForkID": 0,
"IsTemplate": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"TrustModel": 0,
"ArchivedUnix": 0,
"Name": "pypilot",
"OriginalServiceType": 2,
"NumStars": 0,
"NumIssues": 2,
"NumClosedActionRuns": 984,
"NumOpenActionRuns": 0,
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"NumClosedProjects": 0,
"NumActionRuns": 984,
"OwnerName": "repos"
},
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"DiffShortStat": {
"NumFiles": 8,
"TotalAddition": 328,
"TotalDeletion": 455
},
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"UploadMaxFiles": 5,
"TemplateLoadTimes": "[func() string]",
"PageStartTime": {},
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"Title": "Comparing 527e588a24..737c4edf2b",
"Reponame": "pypilot",
"UploadLinkUrl": "/repos/pypilot/issues/attachments",
"BaseBranch": "v1.8.9",
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"SourcePath": "/repos/pypilot/src/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"HasIssuesOrPullsWritePermission": false,
"Branches": [
"main"
],
"HeadTags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg></div>",
"RepoName": "pypilot",
"RunModeIsProd": false,
"EnableSwagger": true,
"BeforeCommit": {
"Tree": {
"TreeCommon": {
"ID": [
107,
168,
48,
8,
163,
113,
115,
94,
127,
249,
241,
17,
227,
64,
35,
96,
244,
130,
104,
226
],
"ResolvedID": null
}
},
"ID": [
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency click to v8.2.2 (#355)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.1` -> `==8.2.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.2.2`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-822)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.1...8.2.2)\n\nUnreleased\n\n- Fix reconciliation of `default`, `flag_value` and `type` parameters for\n flag options, as well as parsing and normalization of environment variables.\n :issue:`2952` :pr:`2956`\n- Fix typing issue in `BadParameter` and `MissingParameter` exceptions for the\n parameter `param_hint` that did not allow for a sequence of string where the\n underlying functino `_join_param_hints` allows for it. :issue:`2777` :pr:`2990`\n- Use the value of `Enum` choices to render their default value in help\n screen. Refs :issue:`2911` :pr:`3004`\n- Fix completion for the Z shell (`zsh`) for completion items containing\n colons. :issue:`2703` :pr:`2846`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/355\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
233,
137,
34,
201,
152,
52,
239,
155,
100,
232,
174,
88,
158,
242,
20,
224,
61,
187,
121,
10
]
]
},
"PageData": {
"DiffFileTree": {
"TreeRoot": {
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
]
},
{
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified"
},
{
"DisplayName": "conventional-commit.yml",
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/conventional-commit.yml"
},
{
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows"
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea"
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json",
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock"
}
],
"FileIcon": "",
"FullName": "",
"DisplayName": "",
"NameHash": "",
"DiffStatus": ""
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>"
},
"BaseName": "repos",
"CompareInfo": {
"HeadCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"Commits": [
{
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/build-push-action action to v7 (#420)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/build-push-action](https://github.com/docker/build-push-action) | action | major | `v6` → `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/build-push-action (docker/build-push-action)</summary>\n\n### [`v7`](https://github.com/docker/build-push-action/compare/v6...v7)\n\n[Compare Source](https://github.com/docker/build-push-action/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/420\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
207,
244,
90,
161,
133,
250,
223,
134,
6,
6,
110,
7,
71,
132,
82,
240,
9,
130,
62,
99
],
"ResolvedID": null
}
},
"ID": [
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <26.3.1,>=26.3.0 (#421)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<26.1.1,>=26.1.0` → `<26.3.1,>=26.3.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.3.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2630)\n\n[Compare Source](https://github.com/psf/black/compare/26.1.0...26.3.0)\n\n##### Stable style\n\n- Don't double-decode input, causing non-UTF-8 files to be corrupted ([#​4964](https://github.com/psf/black/issues/4964))\n- Fix crash on standalone comment in lambda default arguments ([#​4993](https://github.com/psf/black/issues/4993))\n- Preserve parentheses when `# type: ignore` comments would be merged with other\n comments on the same line, preventing AST equivalence failures ([#​4888](https://github.com/psf/black/issues/4888))\n\n##### Preview style\n\n- Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had\n a trailing comma ([#​4884](https://github.com/psf/black/issues/4884))\n- Fix `string_processing` crashing on unassigned long string literals with trailing\n commas (one-item tuples) ([#​4929](https://github.com/psf/black/issues/4929))\n- Simplify implementation of the power operator \"hugging\" logic ([#​4918](https://github.com/psf/black/issues/4918))\n\n##### Packaging\n\n- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\n frozen environments ([#​4930](https://github.com/psf/black/issues/4930))\n\n##### Performance\n\n- Introduce winloop for windows as an alternative to uvloop ([#​4996](https://github.com/psf/black/issues/4996))\n- Remove deprecated function `uvloop.install()` in favor of `uvloop.new_event_loop()`\n ([#​4996](https://github.com/psf/black/issues/4996))\n- Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to simplify loop\n installation and creation of either a uvloop/winloop evenloop or default eventloop\n ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Output\n\n- Emit a clear warning when the target Python version is newer than the running Python\n version, since AST safety checks cannot parse newer syntax. Also replace the\n misleading \"INTERNAL ERROR\" message with an actionable error explaining the version\n mismatch ([#​4983](https://github.com/psf/black/issues/4983))\n\n##### *Blackd*\n\n- Introduce winloop to be used when windows in use which enables blackd to run faster on\n windows when winloop is installed. ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Integrations\n\n- Remove unused gallery script ([#​5030](https://github.com/psf/black/issues/5030))\n- Harden parsing of `black` requirements in the GitHub Action when `use_pyproject` is\n enabled so that only version specifiers are accepted and direct references such as\n `black @​ https://...` are rejected. Users should upgrade to the latest version of the\n action as soon as possible. This update is received automatically when using\n `psf/black@stable`, and is independent of the version of Black installed by the\n action. ([#​5031](https://github.com/psf/black/issues/5031))\n\n##### Documentation\n\n- Expand preview style documentation with detailed examples for `wrap_comprehension_in`,\n `simplify_power_operator_hugging`, and `wrap_long_dict_values_in_parens` features\n ([#​4987](https://github.com/psf/black/issues/4987))\n- Add detailed documentation for formatting Jupyter Notebooks ([#​5009](https://github.com/psf/black/issues/5009))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OC4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/421\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
]
],
"Tree": {
"TreeCommon": {
"ID": [
203,
115,
71,
56,
137,
176,
180,
148,
171,
200,
154,
132,
74,
30,
231,
35,
104,
209,
110,
204
],
"ResolvedID": null
}
},
"ID": [
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tabulate to v0.10.0 (#417)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [tabulate](https://github.com/astanin/python-tabulate) | `==0.9.0` → `==0.10.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astanin/python-tabulate (tabulate)</summary>\n\n### [`v0.10.0`](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n[Compare Source](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41My4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/417\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
145,
163,
141,
48,
242,
186,
111,
51,
48,
46,
4,
237,
16,
28,
1,
167,
255,
54,
4
],
"ResolvedID": null
}
},
"ID": [
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
]
],
"Tree": {
"TreeCommon": {
"ID": [
74,
59,
158,
167,
90,
222,
211,
85,
61,
150,
81,
122,
16,
127,
222,
102,
63,
2,
65,
207
],
"ResolvedID": null
}
},
"ID": [
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#415)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/415\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
135,
87,
222,
200,
9,
213,
147,
0,
220,
23,
205,
184,
1,
126,
201,
187,
147,
173,
255,
0
]
}
},
"ID": [
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#416)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/416\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
213,
17,
80,
137,
164,
216,
216,
22,
208,
160,
124,
137,
35,
245,
52,
222,
11,
235,
12,
227
],
"ResolvedID": null
}
},
"ID": [
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#414)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/414\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
]
]
},
{
"Parents": [
[
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
]
],
"Tree": {
"TreeCommon": {
"ID": [
100,
137,
198,
88,
236,
219,
219,
213,
77,
37,
186,
107,
61,
134,
50,
125,
60,
240,
114,
1
],
"ResolvedID": null
}
},
"ID": [
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#413)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/413\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"ID": [
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#412)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/412\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
165,
210,
85,
112,
247,
140,
213,
205,
198,
252,
137,
245,
16,
169,
245,
130,
57,
139,
72
],
"ResolvedID": null
}
}
},
{
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#411)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
4,
24,
38,
128,
10,
151,
131,
87,
181,
79,
200,
224,
59,
231,
243,
92,
61,
198,
213
],
"ResolvedID": null
}
},
"ID": [
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
160,
109,
243,
213,
111,
228,
8,
253,
75,
112,
108,
61,
111,
204,
142,
219,
39,
111,
104,
238
],
"ResolvedID": null
}
},
"ID": [
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(ci): remove Snyk security workflow and update renovate configuration (#410)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/410\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
]
],
"Tree": {
"TreeCommon": {
"ID": [
159,
229,
97,
136,
224,
143,
219,
67,
58,
190,
119,
157,
71,
56,
63,
33,
206,
43,
124,
247
],
"ResolvedID": null
}
},
"ID": [
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#409)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/409\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
69,
213,
163,
134,
88,
68,
122,
118,
114,
72,
52,
182,
59,
163,
144,
66,
223,
178,
14,
250
],
"ResolvedID": null
}
},
"ID": [
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
]
]
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#408)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
]
],
"Tree": {
"TreeCommon": {
"ID": [
20,
218,
209,
10,
9,
227,
144,
104,
12,
105,
69,
239,
73,
157,
20,
120,
122,
140,
253,
122
],
"ResolvedID": null
}
},
"ID": [
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
36,
83,
75,
86,
156,
156,
57,
123,
49,
123,
143,
64,
145,
5,
68,
146,
66,
123,
213,
44
],
"ResolvedID": null
}
},
"ID": [
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#407)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/407\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
]
]
},
{
"Parents": [
[
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
]
],
"Tree": {
"TreeCommon": {
"ID": [
99,
145,
160,
10,
240,
4,
130,
18,
234,
156,
176,
119,
55,
229,
26,
8,
145,
82,
226,
220
],
"ResolvedID": null
}
},
"ID": [
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#406)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/406\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
25,
112,
167,
230,
168,
226,
148,
28,
114,
101,
231,
195,
92,
119,
85,
175,
159,
60,
70
],
"ResolvedID": null
}
},
"ID": [
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#405)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni4xMSIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/405\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
98,
1,
147,
211,
224,
214,
129,
0,
246,
13,
59,
205,
197,
57,
102,
100,
69,
171,
241,
109
]
}
},
"ID": [
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#404)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/404\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
]
]
},
{
"ID": [
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#403)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/403\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
163,
87,
58,
25,
201,
167,
129,
87,
106,
169,
213,
225,
157,
254,
76,
255,
137,
27,
119
],
"ResolvedID": null
}
}
},
{
"Parents": [
[
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
246,
0,
51,
146,
25,
100,
253,
53,
248,
137,
179,
121,
145,
38,
230,
64,
94,
83,
85
],
"ResolvedID": null
}
},
"ID": [
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#402)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/402\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
]
],
"Tree": {
"TreeCommon": {
"ID": [
56,
81,
31,
170,
203,
144,
118,
178,
47,
101,
58,
103,
22,
231,
218,
99,
180,
120,
44,
85
],
"ResolvedID": null
}
},
"ID": [
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#401)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/401\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"CommitMessage": "chore(deps): update dependency pylint to v4 (#399)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.1.0` -> `<4.1.0,>=4.0.4` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.4`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.4)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.4)\n\n## What's new in Pylint 4.0.4?\n\nRelease date: 2025-11-30\n\n## False Positives Fixed\n\n- Fixed false positive for `invalid-name` where module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.\n\n Closes [#​10719](https://github.com/pylint-dev/pylint/issues/10719)\n\n- Fix a false positive for `invalid-name` on an UPPER\\_CASED name inside an `if` branch that assigns an object.\n\n Closes [#​10745](https://github.com/pylint-dev/pylint/issues/10745)\n\n### [`v4.0.3`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.3)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3)\n\n## What's new in Pylint 4.0.3?\n\nRelease date: 2025-11-13\n\n## False Positives Fixed\n\n- Add Enum dunder methods `_generate_next_value_`, `_missing_`, `_numeric_repr_`, `_add_alias_`, and `_add_value_alias_` to the list passed to `--good-dunder-names`.\n\n Closes [#​10435](https://github.com/pylint-dev/pylint/issues/10435)\n\n- Fixed false positive for `invalid-name` with `typing.Annotated`.\n\n Closes [#​10696](https://github.com/pylint-dev/pylint/issues/10696)\n\n- Fix false positive for `f-string-without-interpolation` with template strings\n when using format spec.\n\n Closes [#​10702](https://github.com/pylint-dev/pylint/issues/10702)\n\n- Fix a false positive when an UPPER\\_CASED class attribute was raising an\n `invalid-name` when typed with `Final`.\n\n Closes [#​10711](https://github.com/pylint-dev/pylint/issues/10711)\n\n- Fix a false positive for `unbalanced-tuple-unpacking` when a tuple is assigned to a function call and the structure of the function's return value is ambiguous.\n\n Closes [#​10721](https://github.com/pylint-dev/pylint/issues/10721)\n\n## Other Bug Fixes\n\n- Make 'ignore' option work as expected again.\n\n Closes [#​10669](https://github.com/pylint-dev/pylint/issues/10669)\n\n- Fix crash for `consider-using-assignment-expr` when a variable annotation without assignment\n is used as the `if` test expression.\n\n Closes [#​10707](https://github.com/pylint-dev/pylint/issues/10707)\n\n- Fix crash for `prefer-typing-namedtuple` and `consider-math-not-float` when\n a `slice` object is called.\n\n Closes [#​10708](https://github.com/pylint-dev/pylint/issues/10708)\n\n### [`v4.0.2`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.2)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.2)\n\n## False Positives Fixed\n\n- Fix false positive for `invalid-name` on a partially uninferable module-level constant.\n\n Closes [#​10652](https://github.com/pylint-dev/pylint/issues/10652)\n\n- Fix a false positive for `invalid-name` on exclusive module-level assignments\n composed of three or more branches. We won't raise `disallowed-name` on module-level names that can't be inferred\n until a further refactor to remove this false negative is done.\n\n Closes [#​10664](https://github.com/pylint-dev/pylint/issues/10664)\n\n- Fix false positive for `invalid-name` for `TypedDict` instances.\n\n Closes [#​10672](https://github.com/pylint-dev/pylint/issues/10672)\n\n### [`v4.0.1`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.1)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.0...v4.0.1)\n\n## What's new in Pylint 4.0.1?\n\nRelease date: 2025-10-14\n\n## False Positives Fixed\n\n- Exclude `__all__` and `__future__.annotations` from `unused-variable`.\n\n Closes [#​10019](https://github.com/pylint-dev/pylint/issues/10019)\n\n- Fix false-positive for `bare-name-capture-pattern` if a case guard is used.\n\n Closes [#​10647](https://github.com/pylint-dev/pylint/issues/10647)\n\n- Check enums created with the `Enum()` functional syntax to pass against the\n `--class-rgx` for the `invalid-name` check, like other enums.\n\n Closes [#​10660](https://github.com/pylint-dev/pylint/issues/10660)\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n # inference engine understands result.errors cannot be None\n # pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/399\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
]
],
"Tree": {
"TreeCommon": {
"ID": [
72,
85,
10,
212,
246,
38,
71,
70,
244,
238,
16,
246,
221,
211,
108,
244,
10,
123,
241,
78
],
"ResolvedID": null
}
},
"ID": [
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
5,
15,
160,
130,
189,
62,
26,
14,
129,
54,
113,
125,
195,
2,
185,
181,
90,
252,
198,
188
],
"ResolvedID": null
}
},
"ID": [
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#400)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/400\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
]
]
},
{
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#398)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/398\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
],
"Tree": {
"TreeCommon": {
"ID": [
220,
67,
1,
181,
75,
1,
117,
234,
73,
193,
202,
187,
125,
224,
179,
177,
161,
250,
50,
94
],
"ResolvedID": null
}
},
"ID": [
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#397)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/397\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
173,
23,
222,
244,
220,
26,
221,
151,
202,
142,
158,
64,
2,
18,
114,
138,
133,
208,
241
],
"ResolvedID": null
}
},
"ID": [
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
126,
142,
13,
211,
103,
35,
185,
45,
105,
246,
8,
90,
180,
223,
112,
140,
250,
75,
70,
182
],
"ResolvedID": null
}
},
"ID": [
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#396)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/396\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
166,
1,
127,
104,
27,
25,
66,
25,
254,
228,
231,
152,
210,
90,
88,
58,
77,
254,
32,
200
],
"ResolvedID": null
}
},
"ID": [
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#394)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/394\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
]
]
},
{
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#395)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/395\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
]
],
"Tree": {
"TreeCommon": {
"ID": [
91,
191,
127,
235,
96,
160,
229,
194,
236,
166,
1,
130,
108,
101,
81,
243,
173,
26,
39,
165
],
"ResolvedID": null
}
},
"ID": [
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Parents": [
[
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
42,
226,
121,
99,
136,
22,
219,
203,
63,
199,
190,
63,
142,
253,
170,
197,
150,
18,
96,
246
]
}
},
"ID": [
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#392)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/392\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#393)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/393\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
]
],
"Tree": {
"TreeCommon": {
"ID": [
217,
134,
68,
223,
185,
140,
184,
24,
100,
154,
202,
88,
139,
124,
2,
123,
217,
8,
151,
36
],
"ResolvedID": null
}
},
"ID": [
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
243,
74,
184,
156,
199,
136,
221,
222,
40,
36,
97,
254,
160,
16,
196,
118,
221,
228,
20
],
"ResolvedID": null
}
},
"ID": [
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#391)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.1.1` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/391\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#390)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/390\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
]
],
"Tree": {
"TreeCommon": {
"ID": [
159,
187,
252,
77,
29,
152,
33,
69,
239,
98,
143,
222,
61,
77,
227,
28,
22,
98,
16,
224
],
"ResolvedID": null
}
},
"ID": [
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
40,
182,
29,
150,
86,
79,
148,
189,
250,
5,
243,
82,
227,
77,
32,
212,
61,
163,
166,
71
]
}
},
"ID": [
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "Update renovate.json\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
109,
54,
103,
125,
185,
0,
199,
68,
86,
224,
205,
238,
91,
28,
64,
99,
13,
1,
136,
67
],
"ResolvedID": null
}
},
"ID": [
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#389)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/389\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
]
]
},
{
"Tree": {
"TreeCommon": {
"ID": [
254,
243,
36,
142,
163,
222,
112,
187,
187,
236,
157,
22,
236,
160,
31,
39,
162,
244,
236,
236
],
"ResolvedID": null
}
},
"ID": [
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency python (#382)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/382\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
62,
247,
80,
124,
183,
229,
128,
57,
154,
145,
227,
147,
52,
32,
207,
81,
37,
171,
140,
45
],
"ResolvedID": null
}
},
"ID": [
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(ci): Remove dependencies of dependencies (#388)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/388\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
88,
190,
39,
144,
105,
200,
65,
23,
141,
112,
122,
41,
215,
29,
96,
55,
100,
121,
193,
247
],
"ResolvedID": null
}
},
"ID": [
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency idna to v3.11 (#386)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [idna](https://github.com/kjd/idna) ([changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)) | `==3.10` -> `==3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.11`](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n[Compare Source](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/386\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
]
],
"Tree": {
"TreeCommon": {
"ID": [
71,
63,
1,
192,
221,
66,
155,
88,
185,
135,
226,
161,
186,
138,
4,
131,
157,
31,
74,
166
],
"ResolvedID": null
}
},
"ID": [
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.5.0 (#384)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.4.0` -> `==4.5.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.5.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.5.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0)\n\n<!-- Release notes generated using configuration in .github/release.yml at main -->\n\n#### What's Changed\n\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​376](https://github.com/tox-dev/platformdirs/pull/376)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​378](https://github.com/tox-dev/platformdirs/pull/378)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​379](https://github.com/tox-dev/platformdirs/pull/379)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​381](https://github.com/tox-dev/platformdirs/pull/381)\n- Add support for Python 3.14 by [@​hugovk](https://github.com/hugovk) in [#​382](https://github.com/tox-dev/platformdirs/pull/382)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​383](https://github.com/tox-dev/platformdirs/pull/383)\n- Update Windows file paths in README by [@​ParadaCarleton](https://github.com/ParadaCarleton) in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​384](https://github.com/tox-dev/platformdirs/pull/384)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​387](https://github.com/tox-dev/platformdirs/pull/387)\n- Bump astral-sh/setup-uv from 6 to 7 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​388](https://github.com/tox-dev/platformdirs/pull/388)\n- Drop 3.9 support by [@​gaborbernat](https://github.com/gaborbernat) in [#​389](https://github.com/tox-dev/platformdirs/pull/389)\n\n#### New Contributors\n\n- [@​ParadaCarleton](https://github.com/ParadaCarleton) made their first contribution in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/384\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
27,
29,
169,
234,
15,
190,
223,
62,
143,
49,
81,
119,
29,
180,
16,
48,
193,
65,
13,
114
]
}
},
"ID": [
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tomli to v2.3.0 (#385)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [tomli](https://github.com/hukkin/tomli) ([changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md)) | `==2.2.1` -> `==2.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hukkin/tomli (tomli)</summary>\n\n### [`v2.3.0`](https://github.com/hukkin/tomli/blob/HEAD/CHANGELOG.md#230)\n\n[Compare Source](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0)\n\n- Added\n - Binary wheels for Python 3.14 (also free-threaded)\n- Performance\n - Reduced import time\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/385\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
218,
217,
40,
104,
71,
145,
149,
198,
245,
229,
14,
217,
16,
231,
193,
194,
128,
11,
229
],
"ResolvedID": null
}
},
"ID": [
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update astral-sh/setup-uv action to v7 (#383)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | action | major | `v6` -> `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>\n\n### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n[Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzOS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/383\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
173,
112,
215,
7,
250,
219,
211,
180,
81,
141,
230,
203,
26,
91,
177,
251,
221,
168,
51,
121
],
"ResolvedID": null
}
},
"ID": [
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#380)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/380\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
]
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency attrs to v25.4.0 (#381)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [attrs](https://github.com/python-attrs/attrs) ([changelog](https://www.attrs.org/en/stable/changelog.html)) | `==25.3.0` -> `==25.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-attrs/attrs (attrs)</summary>\n\n### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06)\n\n[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0)\n\n##### Backwards-incompatible Changes\n\n- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.\n\n Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.\n If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.\n\n Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.\n\n This shouldn't be a problem for most users, unless you have a pattern like this:\n\n ```python\n @​attrs.define(kw_only=True)\n class Base:\n a: int\n b: int = attrs.field(default=1, kw_only=False)\n\n @​attrs.define\n class Subclass(Base):\n c: int\n ```\n\n Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).\n Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.\n [#​1457](https://github.com/python-attrs/attrs/issues/1457)\n\n##### Changes\n\n- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\\_only* was not specified).\n [#​1427](https://github.com/python-attrs/attrs/issues/1427)\n- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/).\n [#​1446](https://github.com/python-attrs/attrs/issues/1446),\n [#​1451](https://github.com/python-attrs/attrs/issues/1451)\n- `attrs.validators.deep_mapping()` now allows to leave out either *key\\_validator* xor *value\\_validator*.\n [#​1448](https://github.com/python-attrs/attrs/issues/1448)\n- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.\n [#​1449](https://github.com/python-attrs/attrs/issues/1449)\n- Added a new **experimental** way to inspect classes:\n\n `attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.\n\n The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.\n [#​1454](https://github.com/python-attrs/attrs/issues/1454)\n- Fixed annotations for `attrs.field(converter=...)`.\n Previously, a `tuple` of converters was only accepted if it had exactly one element.\n [#​1461](https://github.com/python-attrs/attrs/issues/1461)\n- The performance of `attrs.asdict()` has been improved by 45–260%.\n [#​1463](https://github.com/python-attrs/attrs/issues/1463)\n- The performance of `attrs.astuple()` has been improved by 49–270%.\n [#​1469](https://github.com/python-attrs/attrs/issues/1469)\n- The type annotation for `attrs.validators.or_()` now allows for different types of validators.\n\n This was only an issue on Pyright.\n [#​1474](https://github.com/python-attrs/attrs/issues/1474)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
82,
123,
56,
178,
207,
166,
234,
42,
124,
227,
17,
225,
25,
205,
213,
160,
117,
239,
124,
123
],
"ResolvedID": null
}
},
"ID": [
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
},
{
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.10.5 (#378)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.8.3` -> `==2025.10.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.10.5`](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/378\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
]
],
"Tree": {
"TreeCommon": {
"ID": [
1,
140,
118,
132,
127,
206,
47,
59,
178,
36,
114,
114,
252,
105,
232,
24,
144,
249,
44,
142
],
"ResolvedID": null
}
},
"ID": [
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
]
],
"Tree": {
"TreeCommon": {
"ID": [
188,
198,
62,
242,
178,
189,
9,
100,
230,
40,
39,
18,
117,
218,
178,
3,
230,
110,
160,
171
],
"ResolvedID": null
}
},
"ID": [
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#377)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/377\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
163,
76,
82,
94,
73,
104,
32,
102,
6,
46,
43,
2,
99,
144,
193,
72,
43,
144,
22,
109
]
}
},
"ID": [
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#376)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/376\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
]
},
{
"Parents": [
[
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
28,
59,
171,
205,
223,
162,
110,
114,
137,
221,
55,
150,
33,
137,
37,
32,
195,
0,
72,
31
],
"ResolvedID": null
}
},
"ID": [
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.5 (#375)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.4` -> `==3.2.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/375\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
117,
182,
82,
8,
25,
164,
55,
189,
230,
91,
38,
24,
62,
28,
101,
247,
243,
119,
139,
179
]
}
},
"ID": [
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#374)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/374\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
]
],
"Tree": {
"TreeCommon": {
"ID": [
43,
67,
240,
174,
209,
50,
112,
104,
21,
81,
93,
168,
178,
28,
183,
39,
237,
187,
104,
237
],
"ResolvedID": null
}
},
"ID": [
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency click to v8.3.0 (#373)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.2` -> `==8.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.3.0`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-830)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.2...8.3.0)\n\nReleased 2025-09-15\n\n- **Improved flag option handling**: Reworked the relationship between `flag_value`\n and `default` parameters for better consistency:\n\n - The `default` parameter value is now preserved as-is and passed directly\n to CLI functions (no more unexpected transformations)\n - Exception: flag options with `default=True` maintain backward compatibility\n by defaulting to their `flag_value`\n - The `default` parameter can now be any type (`bool`, `None`, etc.)\n - Fixes inconsistencies reported in: :issue:`1992` :issue:`2514` :issue:`2610`\n :issue:`3024` :pr:`3030`\n- Allow `default` to be set on `Argument` for `nargs = -1`. :issue:`2164`\n :pr:`3030`\n- Show correct auto complete value for `nargs` option in combination with flag\n option :issue:`2813`\n- Show correct auto complete value for nargs option in combination with flag option :issue:`2813`\n- Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:`2995` :pr:`3013`\n- Lazily import `shutil`. :pr:`3023`\n- Properly forward exception information to resources registered with\n `click.core.Context.with_resource()`. :issue:`2447` :pr:`3058`\n- Fix regression related to EOF handling in CliRunner. :issue:`2939`:pr:`2940`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuOSIsInVwZGF0ZWRJblZlciI6IjQxLjExNi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/373\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#361)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/361\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
]
],
"Tree": {
"TreeCommon": {
"ID": [
205,
75,
65,
101,
46,
191,
110,
249,
90,
153,
11,
227,
142,
70,
123,
98,
38,
144,
227,
130
],
"ResolvedID": null
}
},
"ID": [
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
]
},
{
"ID": [
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#369)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/369\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
],
"Tree": {
"TreeCommon": {
"ID": [
233,
56,
47,
187,
159,
30,
71,
221,
38,
146,
162,
24,
110,
224,
79,
207,
225,
239,
83,
176
],
"ResolvedID": null
}
}
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
]
],
"Tree": {
"TreeCommon": {
"ID": [
161,
250,
245,
85,
155,
92,
60,
180,
42,
83,
168,
33,
232,
47,
34,
30,
120,
205,
122,
85
],
"ResolvedID": null
}
},
"ID": [
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#372)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/372\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Parents": [
[
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
]
],
"Tree": {
"TreeCommon": {
"ID": [
176,
42,
26,
51,
178,
3,
106,
22,
134,
151,
203,
207,
61,
71,
151,
126,
205,
115,
190,
130
],
"ResolvedID": null
}
},
"ID": [
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.4 (#371)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.3` -> `==3.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjQxLjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/371\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
]
],
"Tree": {
"TreeCommon": {
"ID": [
70,
63,
163,
243,
201,
255,
165,
210,
209,
76,
203,
37,
91,
176,
54,
61,
161,
113,
89,
136
],
"ResolvedID": null
}
},
"ID": [
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#368)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/368\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"ID": [
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#367)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/367\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
223,
228,
2,
1,
182,
134,
1,
240,
255,
148,
155,
157,
143,
29,
227,
169,
166,
32,
41
],
"ResolvedID": null
}
}
},
{
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.4.0 (#366)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.3.8` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.4.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0)\n\n##### What's Changed\n\n- feat: improve homebrew path detection by [@​daeho-ro](https://github.com/daeho-ro) in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n##### New Contributors\n\n- [@​daeho-ro](https://github.com/daeho-ro) made their first contribution in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44My4yIiwidXBkYXRlZEluVmVyIjoiNDEuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/366\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
]
],
"Tree": {
"TreeCommon": {
"ID": [
111,
156,
174,
195,
238,
98,
46,
234,
188,
112,
66,
46,
136,
95,
104,
16,
216,
194,
131,
106
],
"ResolvedID": null
}
},
"ID": [
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
]
},
{
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#365)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/365\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
104,
113,
72,
148,
213,
189,
217,
216,
35,
120,
106,
18,
160,
71,
142,
45,
61,
11,
149,
209
]
}
},
"ID": [
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
]
],
"Tree": {
"TreeCommon": {
"ID": [
77,
3,
220,
26,
181,
200,
226,
220,
36,
183,
196,
82,
248,
210,
135,
74,
72,
103,
131,
2
],
"ResolvedID": null
}
},
"ID": [
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency lazy-object-proxy to v1.12.0 (#364)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) ([changelog](https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html)) | `==1.11.0` -> `==1.12.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ionelmc/python-lazy-object-proxy (lazy-object-proxy)</summary>\n\n### [`v1.12.0`](https://github.com/ionelmc/python-lazy-object-proxy/blob/HEAD/CHANGELOG.rst#1120-2025-08-22)\n\n[Compare Source](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0)\n\n- Fixed testing issues when C extensions are not desired.\n Contributed by Michał Górny in `#​79 <https://github.com/ionelmc/python-lazy-object-proxy/pull/79>`\\_.\n- Added support for GraalPy.\n Contributed by Michael Šimáček in `#​87 <https://github.com/ionelmc/python-lazy-object-proxy/pull/87>`\\_.\n- Fixed testing issues on Python 3.14.\n Contributed by Michał Górny in `#​88 <https://github.com/ionelmc/python-lazy-object-proxy/pull/88>`\\_.\n- Modernized packaging to have metadata in `pyproject.toml`.\n- Added Python 3.14 wheels.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS42IiwidXBkYXRlZEluVmVyIjoiNDEuODEuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/364\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Tree": {
"TreeCommon": {
"ID": [
44,
36,
244,
247,
15,
230,
228,
80,
118,
192,
178,
54,
211,
95,
216,
123,
118,
238,
0,
251
],
"ResolvedID": null
}
},
"ID": [
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency requests to v2.32.5 (#363)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | `==2.32.4` -> `==2.32.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/requests (requests)</summary>\n\n### [`v2.32.5`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2325-2025-08-18)\n\n[Compare Source](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)\n\n**Bugfixes**\n\n- The SSLContext caching feature originally introduced in 2.32.0 has created\n a new class of issues in Requests that have had negative impact across a number\n of use cases. The Requests team has decided to revert this feature as long term\n maintenance of it is proving to be unsustainable in its current iteration.\n\n**Deprecations**\n\n- Added support for Python 3.14.\n- Dropped support for Python 3.8 following its end of support.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43Ni4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/363\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
]
]
},
{
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#360)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/360\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
181,
248,
58,
41,
23,
84,
159,
79,
138,
197,
166,
162,
191,
225,
128,
125,
199,
230,
238,
28
],
"ResolvedID": null
}
},
"ID": [
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
{
"Tree": {
"TreeCommon": {
"ID": [
168,
113,
206,
7,
148,
192,
103,
36,
23,
14,
217,
108,
83,
99,
166,
81,
142,
241,
25,
215
],
"ResolvedID": null
}
},
"ID": [
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#359)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/359\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
]
]
},
{
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
]
],
"Tree": {
"TreeCommon": {
"ID": [
252,
35,
3,
134,
242,
176,
9,
40,
217,
43,
206,
2,
102,
196,
245,
51,
192,
219,
1,
194
],
"ResolvedID": null
}
},
"ID": [
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency wrapt to v1.17.3 (#362)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) ([changelog](https://wrapt.readthedocs.io/en/latest/changes.html)) | `==1.17.2` -> `==1.17.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>GrahamDumpleton/wrapt (wrapt)</summary>\n\n### [`v1.17.3`](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n[Compare Source](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/362\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
},
{
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency charset-normalizer to v3.4.3 (#358)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) ([changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)) | `==3.4.2` -> `==3.4.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>jawah/charset_normalizer (charset-normalizer)</summary>\n\n### [`v3.4.3`](https://github.com/jawah/charset_normalizer/blob/HEAD/CHANGELOG.md#343-2025-08-09)\n\n[Compare Source](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3)\n\n##### Changed\n\n- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. ([#​595](https://github.com/jawah/charset_normalizer/issues/595)) ([#​583](https://github.com/jawah/charset_normalizer/issues/583))\n- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. ([#​391](https://github.com/jawah/charset_normalizer/issues/391))\n\n##### Added\n\n- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\n- Support for Python 3.14\n\n##### Fixed\n\n- sdist archive contained useless directories.\n- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. ([#​633](https://github.com/jawah/charset_normalizer/issues/633))\n\n##### Misc\n\n- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\n Each published wheel comes with its SBOM. We choose CycloneDX as the format.\n- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC4yIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/358\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
38,
234,
111,
189,
233,
242,
117,
101,
31,
155,
75,
4,
216,
224,
48,
242,
198,
171,
210
],
"ResolvedID": null
}
},
"ID": [
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
}
},
{
"CommitMessage": "chore(deps): lock file maintenance (#357)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/357\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
191,
248,
238,
5,
150,
100,
198,
234,
222,
114,
114,
201,
159,
35,
106,
112,
135,
152,
194,
184
]
}
},
"ID": [
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
},
{
"Parents": [
[
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
255,
121,
156,
108,
235,
30,
68,
112,
87,
74,
175,
22,
214,
255,
28,
149,
116,
235,
168
],
"ResolvedID": null
}
},
"ID": [
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.8.3 (#356)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.7.14` -> `==2025.8.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.8.3`](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/356\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
],
"BaseRepo": {
"OriginalServiceType": 2,
"NumProjects": 0,
"Units": [
{
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null
}
},
{
"RepoID": 25,
"Type": 3,
"Config": {
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857
}
],
"PrimaryLanguage": "[*repo.LanguageStat]",
"Size": 2465934,
"OwnerID": 13,
"DefaultBranch": "main",
"NumClosedIssues": 1,
"NumActionRuns": 984,
"NumOpenActionRuns": 0,
"Status": 0,
"TemplateID": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"Name": "pypilot",
"Description": "",
"NumMilestones": 0,
"IsArchived": false,
"LFSSize": 0,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumClosedPulls": 436,
"NumOpenPulls": 0,
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Website": "",
"DefaultWikiBranch": "main",
"NumClosedActionRuns": 984,
"IsEmpty": false,
"IsFsckEnabled": true,
"Topics": null,
"ObjectFormatName": "sha1",
"Avatar": "",
"LowerName": "pypilot",
"NumIssues": 2,
"NumOpenIssues": 1,
"NumPulls": 436,
"NumOpenMilestones": 0,
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"IsMirror": false,
"ID": 25,
"OwnerName": "repos",
"NumForks": 0,
"IsPrivate": false,
"IsTemplate": false,
"TrustModel": 0,
"CreatedUnix": 1737063265,
"ArchivedUnix": 0,
"Owner": {
"AllowImportLocal": false,
"NumRepos": 27,
"RepoAdminChangeTeamAccess": true,
"Website": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"ProhibitLogin": false,
"Name": "repos",
"FullName": "",
"Passwd": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Salt": "b7ae788249c01a123b005da3b594e807",
"AvatarEmail": "",
"NumStars": 0,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginType": 0,
"LastLoginUnix": 0,
"Visibility": 0,
"LoginName": "",
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Email": "",
"LoginSource": 0,
"Type": 1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 13,
"PasswdHashAlgo": "",
"Language": "",
"NumFollowing": 0,
"LowerName": "repos",
"EmailNotificationsPreference": "",
"Location": "",
"NumTeams": 6,
"NumMembers": 7,
"Theme": "tangerine-dream",
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"AllowGitHook": false
},
"NumWatches": 5,
"NumStars": 0,
"NumClosedMilestones": 0,
"IsFork": false,
"UpdatedUnix": 1776589233
},
"BaseRef": "refs/tags/v1.8.9",
"HeadRepo": {
"IsTemplate": false,
"TemplateID": 0,
"Topics": null,
"UpdatedUnix": 1776589233,
"Description": "",
"OriginalServiceType": 2,
"NumStars": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"ArchivedUnix": 0,
"NumOpenProjects": 0,
"NumActionRuns": 984,
"Owner": {
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"IsAdmin": false,
"AvatarEmail": "",
"UseCustomAvatar": true,
"NumMembers": 7,
"ID": 13,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 0,
"NumRepos": 27,
"CreatedUnix": 1739049474,
"LoginName": "",
"Type": 1,
"LowerName": "repos",
"FullName": "",
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"NumStars": 0,
"Visibility": 0,
"Email": "",
"KeepEmailPrivate": false,
"Passwd": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"NumFollowers": 0,
"NumTeams": 6,
"Theme": "tangerine-dream",
"Name": "repos",
"LoginSource": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsActive": true,
"AllowImportLocal": false,
"Website": "",
"Description": "",
"UpdatedUnix": 1776538024,
"LastLoginUnix": 0,
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"LoginType": 0,
"Language": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76"
},
"LowerName": "pypilot",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumIssues": 2,
"NumClosedIssues": 1,
"ForkID": 0,
"NumProjects": 0,
"DefaultWikiBranch": "main",
"NumForks": 0,
"NumPulls": 436,
"NumClosedPulls": 436,
"NumOpenPulls": 0,
"NumMilestones": 0,
"GitSize": 2465934,
"OwnerID": 13,
"Name": "pypilot",
"Website": "",
"NumOpenMilestones": 0,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"BaseRepo": "[*repo.Repository]",
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"NumClosedProjects": 0,
"IsPrivate": false,
"IsEmpty": false,
"IsFork": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"TrustModel": 0,
"CreatedUnix": 1737063265,
"OwnerName": "repos",
"NumWatches": 5,
"NumOpenIssues": 1,
"NumOpenActionRuns": 0,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"RepoID": 25,
"Type": 2,
"Config": {
"EnableDependencies": true,
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853
},
{
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25
},
{
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"IgnoreWhitespaceConflicts": false,
"AllowRebase": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
}
],
"ObjectFormatName": "sha1",
"ID": 25,
"DefaultBranch": "main",
"IsArchived": false,
"Size": 2465934,
"LFSSize": 0,
"Avatar": "",
"NumClosedMilestones": 0,
"NumClosedActionRuns": 984,
"IsMirror": false
},
"CompareSeparator": "..",
"MergeBase": "527e588a24fba8d0bbb0c9f23f4998bd889b90b6",
"NumFiles": 8,
"BaseCommitID": "527e588a24fba8d0bbb0c9f23f4998bd889b90b6",
"HeadGitRepo": {
"LastCommitCache": "[*git.LastCommitCache]",
"Path": "/var/lib/gitea/git/repositories/repos/pypilot.git",
"Ctx": {
"Cache": {},
"Session": {
"RawStore": {},
"Manager": {}
},
"IsSigned": false,
"TemplateContext": {
"MiscUtils": {},
"RootData": {
"BodyQuery": "",
"DiffBlobExcerptData": {
"BaseLink": "/repos/pypilot/blob_excerpt",
"IsWikiRepo": false,
"PullIssueIndex": 0,
"DiffStyle": "unified",
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c"
},
"DisableMigrations": false,
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg></div>",
"UploadUrl": "/repos/pypilot/issues/attachments",
"ExpandNewPrForm": false,
"IsPull": true,
"CommitRepoLink": "/repos/pypilot",
"DisableDownloadSourceArchives": false,
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"Repository": {
"TemplateID": 0,
"Size": 2465934,
"NumOpenMilestones": 0,
"ForkID": 0,
"LFSSize": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"Topics": null,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589233,
"NumProjects": 0,
"ID": 25,
"Owner": {
"Theme": "tangerine-dream",
"Email": "",
"Passwd": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"CreatedUnix": 1739049474,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumTeams": 6,
"RepoAdminChangeTeamAccess": true,
"ID": 13,
"LoginSource": 0,
"Website": "",
"Description": "",
"IsAdmin": false,
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"UpdatedUnix": 1776538024,
"LastRepoVisibility": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"AllowGitHook": false,
"AvatarEmail": "",
"Location": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"LowerName": "repos",
"Name": "repos",
"LastLoginUnix": 0,
"NumFollowing": 0,
"NumRepos": 27,
"NumMembers": 7,
"MustChangePassword": false,
"LoginType": 0,
"LoginName": "",
"Type": 1,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"DiffViewStyle": "",
"FullName": "",
"MaxRepoCreation": -1,
"IsActive": true,
"ProhibitLogin": false,
"Visibility": 0
},
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25,
"Type": 2
},
{
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704
},
{
"Type": 3,
"Config": {
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"DefaultMergeStyle": "squash",
"AllowMerge": false,
"AllowRebase": false,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowRebaseMerge": false,
"AllowSquash": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25
}
],
"GitSize": 2465934,
"Avatar": "",
"NumMilestones": 0,
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"NumActionRuns": 984,
"LowerName": "pypilot",
"Name": "pypilot",
"NumIssues": 2,
"NumClosedActionRuns": 984,
"NumClosedIssues": 1,
"NumOpenIssues": 1,
"IsPrivate": false,
"IsEmpty": false,
"IsMirror": false,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsFork": false,
"BaseRepo": "[*repo.Repository]",
"IsArchived": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"TrustModel": 0,
"CreatedUnix": 1737063265,
"ArchivedUnix": 0,
"NumClosedPulls": 436,
"NumOpenPulls": 0,
"NumClosedMilestones": 0,
"OwnerID": 13,
"OwnerName": "repos",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"DefaultBranch": "main",
"DefaultWikiBranch": "main",
"NumStars": 0,
"Description": "",
"OriginalServiceType": 2,
"NumWatches": 5,
"NumForks": 0,
"NumPulls": 436,
"NumOpenActionRuns": 0,
"Status": 0,
"Website": "",
"IsTemplate": false
},
"WhitespaceBehavior": "ignore-eol",
"HasIssuesOrPullsWritePermission": false,
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
},
"Instance": {
"WebBanner": {},
"MaintenanceMode": {}
}
},
"PageGlobalData": {
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]",
"IsSigned": false,
"IsSiteAdmin": false,
"GetNotificationUnreadCount": "[func() int64]"
},
"CanWriteCode": false,
"UploadMaxFiles": 5,
"TemplateLoadTimes": "[func() string]",
"HeadBranches": [
"main"
],
"PageIsViewCode": true,
"UploadMaxSize": 100,
"RunModeIsProd": false,
"ContextUser": {
"EmailNotificationsPreference": "",
"LoginSource": 0,
"IsRestricted": false,
"NumMembers": 7,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LowerName": "repos",
"LoginName": "",
"IsAdmin": false,
"NumFollowers": 0,
"FullName": "",
"KeepEmailPrivate": false,
"Type": 1,
"AllowImportLocal": false,
"NumRepos": 27,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"UpdatedUnix": 1776538024,
"LastRepoVisibility": false,
"IsActive": true,
"Passwd": "",
"LoginType": 0,
"Location": "",
"Description": "",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"ID": 13,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Theme": "tangerine-dream",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"AvatarEmail": "",
"Email": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"NumTeams": 6,
"LastLoginUnix": 0,
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"CreatedUnix": 1739049474,
"NumStars": 0,
"Name": "repos"
},
"PageData": {
"DiffFileTree": {
"TreeRoot": {
"DisplayName": "",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": [
{
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
},
{
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/conventional-commit.yml",
"DisplayName": "conventional-commit.yml",
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows"
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json",
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": ""
}
],
"FileIcon": "",
"FullName": ""
}
},
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>"
},
"HeadUser": {
"Salt": "b7ae788249c01a123b005da3b594e807",
"FullName": "",
"Passwd": "",
"LoginName": "",
"Location": "",
"AllowCreateOrganization": false,
"NumStars": 0,
"DiffViewStyle": "",
"AvatarEmail": "",
"NumMembers": 7,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Type": 1,
"Email": "",
"KeepEmailPrivate": false,
"LoginSource": 0,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 0,
"ID": 13,
"MustChangePassword": false,
"Language": "",
"Description": "",
"IsRestricted": false,
"AllowGitHook": false,
"NumTeams": 6,
"Visibility": 0,
"LowerName": "repos",
"UpdatedUnix": 1776538024,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"Website": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"IsAdmin": false,
"NumRepos": 27,
"LoginType": 0,
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"RepoAdminChangeTeamAccess": true,
"Name": "repos",
"Rands": "332424116cb6639ebeac861f16b8e571"
},
"RepoCloneLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git",
"Tea": "tea clone repos/pypilot"
},
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"BeforeSourcePath": "/repos/pypilot/src/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"IsLandingPageOrganizations": false,
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git",
"Tea": "tea clone repos/pypilot"
},
"CommitCount": 64,
"DiffNotAvailable": false,
"NumReleases": 40,
"BaseCompareRepo": {
"DefaultBranch": "main",
"DefaultWikiBranch": "main",
"NumOpenActionRuns": 0,
"IsFork": false,
"LFSSize": 0,
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"NumClosedMilestones": 0,
"NumProjects": 0,
"IsTemplate": false,
"TemplateID": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"TrustModel": 0,
"ArchivedUnix": 0,
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"NumActionRuns": 984,
"Owner": {
"Name": "repos",
"Email": "",
"Type": 1,
"Website": "",
"Language": "",
"NumRepos": 27,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"FullName": "",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"UpdatedUnix": 1776538024,
"AllowCreateOrganization": false,
"AvatarEmail": "",
"KeepEmailPrivate": false,
"NumFollowing": 0,
"NumMembers": 7,
"Passwd": "",
"AllowGitHook": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"LoginName": "",
"ID": 13,
"Location": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"IsActive": true,
"IsRestricted": false,
"LowerName": "repos",
"AllowImportLocal": false,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"EmailNotificationsPreference": "",
"PasswdHashAlgo": "",
"Description": "",
"NumTeams": 6,
"DiffViewStyle": ""
},
"NumOpenIssues": 1,
"NumOpenPulls": 0,
"Status": 0,
"Units": [
{
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null
}
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"DefaultAllowMaintainerEdit": true,
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AutodetectManualMerge": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash"
},
"CreatedUnix": 1767617704
}
],
"Description": "",
"NumIssues": 2,
"NumClosedIssues": 1,
"NumOpenMilestones": 0,
"IsArchived": false,
"ObjectFormatName": "sha1",
"UpdatedUnix": 1776589233,
"ID": 25,
"OriginalServiceType": 2,
"NumClosedActionRuns": 984,
"ForkID": 0,
"NumPulls": 436,
"IsPrivate": false,
"IsEmpty": false,
"IsMirror": false,
"PrimaryLanguage": "[*repo.LanguageStat]",
"Size": 2465934,
"Avatar": "",
"NumStars": 0,
"OwnerID": 13,
"Website": "",
"NumForks": 0,
"NumClosedPulls": 436,
"NumMilestones": 0,
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"OwnerName": "repos",
"Name": "pypilot",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumWatches": 5,
"BaseRepo": "[*repo.Repository]",
"Topics": null,
"CreatedUnix": 1737063265,
"LowerName": "pypilot"
},
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"FeedURL": "/repos/pypilot",
"SourcePath": "/repos/pypilot/src/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TitleQuery": "",
"CanWriteIssues": false,
"HeadTags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"CodeIndexerUnavailable": false,
"BeforeCommit": {
"CommitMessage": "fix(deps): update dependency click to v8.2.2 (#355)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.1` -> `==8.2.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.2.2`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-822)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.1...8.2.2)\n\nUnreleased\n\n- Fix reconciliation of `default`, `flag_value` and `type` parameters for\n flag options, as well as parsing and normalization of environment variables.\n :issue:`2952` :pr:`2956`\n- Fix typing issue in `BadParameter` and `MissingParameter` exceptions for the\n parameter `param_hint` that did not allow for a sequence of string where the\n underlying functino `_join_param_hints` allows for it. :issue:`2777` :pr:`2990`\n- Use the value of `Enum` choices to render their default value in help\n screen. Refs :issue:`2911` :pr:`3004`\n- Fix completion for the Z shell (`zsh`) for completion items containing\n colons. :issue:`2703` :pr:`2846`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/355\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
233,
137,
34,
201,
152,
52,
239,
155,
100,
232,
174,
88,
158,
242,
20,
224,
61,
187,
121,
10
]
],
"Tree": {
"TreeCommon": {
"ID": [
107,
168,
48,
8,
163,
113,
115,
94,
127,
249,
241,
17,
227,
64,
35,
96,
244,
130,
104,
226
],
"ResolvedID": null
}
},
"ID": [
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"BaseName": "repos",
"Permission": {
"AccessMode": 1
},
"BeforeCommitID": "527e588a24fba8d0bbb0c9f23f4998bd889b90b6",
"DiffShortStat": {
"NumFiles": 8,
"TotalAddition": 328,
"TotalDeletion": 455
},
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"IsAttachmentEnabled": true,
"RepoSearchEnabled": true,
"Title": "Comparing 527e588a24..737c4edf2b",
"UploadLinkUrl": "/repos/pypilot/issues/attachments",
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"EnableOpenIDSignIn": false,
"Username": "repos",
"EnableFeed": true,
"HeadCommit": {
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
]
},
"HeadRepo": {
"NumOpenIssues": 1,
"NumOpenMilestones": 0,
"IsMirror": false,
"NumStars": 0,
"OwnerID": 13,
"Description": "",
"Website": "",
"DefaultWikiBranch": "main",
"NumPulls": 436,
"PrimaryLanguage": "[*repo.LanguageStat]",
"IsTemplate": false,
"ID": 25,
"BaseRepo": "[*repo.Repository]",
"LFSSize": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"Avatar": "",
"ArchivedUnix": 0,
"Owner": {
"Salt": "b7ae788249c01a123b005da3b594e807",
"AllowGitHook": false,
"AvatarEmail": "",
"NumFollowing": 0,
"LoginName": "",
"IsRestricted": false,
"DiffViewStyle": "",
"Type": 1,
"Name": "repos",
"UpdatedUnix": 1776538024,
"NumStars": 0,
"Theme": "tangerine-dream",
"Location": "",
"UseCustomAvatar": true,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"IsActive": true,
"IsAdmin": false,
"LoginType": 0,
"LoginSource": 0,
"PasswdHashAlgo": "",
"Website": "",
"Description": "",
"LastRepoVisibility": false,
"EmailNotificationsPreference": "",
"Language": "",
"LastLoginUnix": 0,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowers": 0,
"NumRepos": 27,
"NumTeams": 6,
"ID": 13,
"FullName": "",
"Email": "",
"Passwd": "",
"MustChangePassword": false,
"CreatedUnix": 1739049474,
"AllowImportLocal": false,
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Rands": "332424116cb6639ebeac861f16b8e571",
"AllowCreateOrganization": false,
"NumMembers": 7,
"MaxRepoCreation": -1,
"LowerName": "repos"
},
"NumIssues": 2,
"NumOpenPulls": 0,
"NumClosedMilestones": 0,
"IsPrivate": false,
"IsEmpty": false,
"IsArchived": false,
"ForkID": 0,
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"NumOpenActionRuns": 0,
"Units": [
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704
},
{
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25,
"Type": 2
},
{
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
}
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"AllowSquash": true,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash",
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowRebaseMerge": false,
"AllowFastForwardOnly": false,
"AutodetectManualMerge": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"AllowMerge": false,
"AllowRebase": false
}
}
],
"TemplateID": 0,
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"NumWatches": 5,
"DefaultBranch": "main",
"NumClosedPulls": 436,
"NumActionRuns": 984,
"NumClosedActionRuns": 984,
"IsFork": false,
"TrustModel": 0,
"LowerName": "pypilot",
"NumMilestones": 0,
"Size": 2465934,
"CloseIssuesViaCommitInAnyBranch": true,
"Topics": null,
"UpdatedUnix": 1776589233,
"OwnerName": "repos",
"OriginalServiceType": 2,
"NumForks": 0,
"NumProjects": 0,
"Status": 0,
"CreatedUnix": 1737063265,
"Name": "pypilot",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumClosedIssues": 1
},
"Link": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"AllowMaintainerEdit": true,
"IsDiffCompare": true,
"UserAndOrgForks": null,
"PageTitleCommon": "pypilot - Gitea",
"RepoLink": "/repos/pypilot",
"NumTags": 42,
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"content": "",
"TemplateName": "repo/diff/compare",
"DisableStars": false,
"ShowTwoFactorRequiredMessage": false,
"Diff": {
"End": "",
"Files": [
{
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"Type": 4,
"EntryMode": "",
"IsLFSFile": false,
"IsIncomplete": false,
"IsVendored": false,
"IsViewed": false,
"Deletion": 1,
"IsBin": false,
"IsRenamed": true,
"Sections": [
{
"FileName": ".gitea/workflows-disabled/security.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,7 +25,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 7,
"RightHunkSize": 7
},
"LeftIdx": 0
},
{
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " steps:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Checkout repo"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2"
},
{
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " - name: Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " uses: snyk/actions/python@master",
"Comments": null
}
]
}
],
"Name": ".gitea/workflows-disabled/security.yml",
"OldEntryMode": "",
"IsDeleted": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"OldName": ".gitea/workflows/security.yml",
"Addition": 1
},
{
"Deletion": 22,
"Type": 2,
"EntryMode": "",
"IsDeleted": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 12,
"RightHunkSize": 12
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " steps:"
},
{
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 5
},
{
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 10,
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0"
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 21
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null
},
{
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23,
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,12 +25,12 @@ jobs:"
},
{
"Type": 1,
"Content": " no-fail: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 26
},
{
"LeftIdx": 27,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 5,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0
},
{
"RightIdx": 28,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/setup-python@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- python-version: 3.13",
"Comments": null
},
{
"Match": 7,
"Type": 2,
"Content": "+ python-version: 3.14",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 32,
"Match": 0,
"Type": 1,
"Content": " - name: uv cache"
},
{
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12
},
{
"RightIdx": 33,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/cache@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 34
},
{
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " path: /tmp/.uv-cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -61,19 +61,19 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LeftIdx": 61,
"RightIdx": 61,
"LeftHunkSize": 19,
"RightHunkSize": 19,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 36,
"LastRightIdx": 36
}
},
{
"LeftIdx": 61,
"RightIdx": 61,
"Match": 0,
"Type": 1,
"Content": " # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": "- - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 0,
"Match": 9,
"Type": 3
},
{
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 0,
"Match": 10
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- uv pip freeze > requirements.txt"
},
{
"Content": "- mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": 12,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- mv uv.lock uv.lock.bak",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 64,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 65,
"Match": 5,
"Type": 2,
"Content": "+ # run: |"
},
{
"Match": 6,
"Type": 2,
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66
},
{
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 67,
"Match": 7,
"Type": 2
},
{
"Content": "+ # mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 8,
"Type": 2
},
{
"LeftIdx": 69,
"RightIdx": 69,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- - name: Snyk SAST Scan",
"Comments": null
},
{
"Match": 23,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0
},
{
"Match": 24,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- with:",
"Comments": null
},
{
"Content": "- # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": 27,
"Type": 3
},
{
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76
},
{
"Match": 15,
"Type": 2,
"Content": "+ # - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71,
"Match": 16,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master"
},
{
"Match": 17,
"Type": 2,
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": 19,
"Type": 2,
"Content": "+ # with:",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 20,
"Type": 2,
"Content": "+ # # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 21,
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 77,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " # - name: Snyk Vulnerability Scan"
},
{
"LeftIdx": 79,
"RightIdx": 79,
"Match": 0,
"Type": 1,
"Content": " # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 79,
"LastRightIdx": 79,
"LeftIdx": 84,
"RightIdx": 84,
"LeftHunkSize": 8,
"RightHunkSize": 8,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -84,8 +84,8 @@ jobs:",
"Comments": null
},
{
"Content": " # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 84,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 85,
"RightIdx": 85,
"Match": 0,
"Type": 1,
"Content": " # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 86,
"Match": 0
},
{
"Type": 3,
"Content": "- - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 87,
"RightIdx": 0,
"Match": 9
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- run: |",
"Comments": null
},
{
"LeftIdx": 89,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 90,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 91,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ # - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": 4,
"Type": 2
},
{
"RightIdx": 88,
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 89,
"Match": 6,
"Type": 2,
"Content": "+ # rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 90,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ # mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": 8
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 92,
"RightIdx": 92,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 91
}
}
]
}
],
"IsProtected": false,
"IsViewed": false,
"OldName": ".gitea/workflows/ci.yml",
"Addition": 22,
"IsRenamed": false,
"IsSubmodule": false,
"IsGenerated": false,
"IsCreated": false,
"IsBin": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"OldEntryMode": "",
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false
},
{
"OldName": ".gitea/workflows/conventional-commit.yml",
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,6 +12,6 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 6,
"RightHunkSize": 6
}
},
{
"Type": 1,
"Content": " name: Validate PR Title",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1
},
{
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " commit-message: ${{ gitea.event.pull_request.title }}"
}
]
},
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftIdx": 18,
"RightIdx": 18,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 17,
"LastRightIdx": 17
}
}
]
}
],
"IsViewed": false,
"IsRenamed": false,
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"Addition": 1,
"Deletion": 1,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"IsIncomplete": false,
"EntryMode": "",
"IsLFSFile": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsBin": false,
"Name": ".gitea/workflows/conventional-commit.yml",
"Type": 2,
"IsProtected": false,
"HasChangedSinceLastReview": false
},
{
"IsCreated": false,
"IsDeleted": false,
"IsLFSFile": false,
"IsViewed": false,
"OldName": ".gitea/workflows/release.yml",
"IsSubmodule": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/release.yml",
"IsBin": false,
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -45,7 +45,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 45,
"RightIdx": 45,
"LeftHunkSize": 7
}
},
{
"LeftIdx": 45,
"RightIdx": 45,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 46,
"Match": 0,
"Type": 1,
"Content": " steps:"
},
{
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 47,
"Match": 0
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 49
},
{
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 50
},
{
"LeftIdx": 51,
"RightIdx": 51,
"Match": 0,
"Type": 1,
"Content": " # - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -53,7 +53,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 51,
"LastRightIdx": 51,
"LeftIdx": 53,
"RightIdx": 53,
"LeftHunkSize": 7,
"RightHunkSize": 7
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " # with:",
"Comments": null
},
{
"Type": 1,
"Content": " # python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 54,
"Match": 0
},
{
"LeftIdx": 55,
"RightIdx": 55,
"Match": 0,
"Type": 1,
"Content": " - name: Install uv",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: astral-sh/setup-uv@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0,
"Match": 5
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56,
"Match": 4,
"Type": 2,
"Content": "+ uses: astral-sh/setup-uv@v7",
"Comments": null
},
{
"RightIdx": 57,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57
},
{
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " enable-cache: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58
},
{
"LeftIdx": 59,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " cache-dependency-glob: \"uv.lock\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Content": "@@ -125,7 +125,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 59,
"LeftIdx": 125,
"RightIdx": 125,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 59
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Type": 1,
"Content": " REPO: ${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 125,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 126,
"RightIdx": 126,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 127,
"RightIdx": 127,
"Match": 0,
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": 5
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 129,
"RightIdx": 129
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 130,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 131,
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}"
}
]
},
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -134,14 +134,14 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 131,
"LastRightIdx": 131,
"LeftIdx": 134,
"RightIdx": 134,
"LeftHunkSize": 14,
"RightHunkSize": 14,
"HiddenCommentIDs": null
}
},
{
"RightIdx": 134,
"Match": 0,
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134
},
{
"LeftIdx": 135,
"RightIdx": 135,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " - name: Log in to Gitea Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 136,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 137,
"Match": 4,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null
},
{
"LeftIdx": 138,
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 139,
"Match": 0,
"Type": 1,
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139
},
{
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.ACTIONS_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140
},
{
"Match": 0,
"Type": 1,
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 141
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 142,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 143
},
{
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0,
"Match": 13
},
{
"LeftIdx": 0,
"RightIdx": 144,
"Match": 12,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 145,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " registry: ghcr.io"
},
{
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 147,
"Match": 0
}
],
"FileName": ".gitea/workflows/release.yml"
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -149,7 +149,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 147,
"LastRightIdx": 147,
"LeftIdx": 149,
"RightIdx": 149,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 149,
"Match": 0
},
{
"LeftIdx": 150,
"RightIdx": 150,
"Match": 0,
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 151,
"Match": 0,
"Type": 1,
"Content": " id: meta"
},
{
"Content": "- uses: docker/metadata-action@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Match": 4,
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 152
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 153,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"LeftIdx": 154,
"RightIdx": 154,
"Match": 0,
"Type": 1,
"Content": " tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 155,
"Match": 0,
"Type": 1,
"Content": " images: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -165,7 +165,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 155,
"LastRightIdx": 155,
"LeftIdx": 165,
"RightIdx": 165,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"LeftIdx": 165,
"RightIdx": 165,
"Match": 0,
"Type": 1,
"Content": " printf \"Tags:\\n${{ steps.meta.outputs.tags }}\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 166,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Build images",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 167
},
{
"LeftIdx": 168,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: docker/build-push-action@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ uses: docker/build-push-action@v7",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 168,
"Match": 4,
"Type": 2
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 169,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 170,
"Match": 0,
"Type": 1,
"Content": " context: ."
},
{
"Type": 1,
"Content": " push: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171,
"RightIdx": 171,
"Match": 0
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 171,
"LastRightIdx": 171,
"LeftIdx": 183,
"RightIdx": 183,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
]
}
],
"IsIncompleteLineTooLong": false,
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"OldEntryMode": "",
"IsRenamed": false,
"IsGenerated": false,
"IsVendored": false,
"Addition": 7,
"Deletion": 7,
"Type": 2,
"EntryMode": ""
},
{
"IsSubmodule": false,
"Name": "Dockerfile",
"OldName": "Dockerfile",
"Addition": 1,
"Deletion": 1,
"OldEntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"EntryMode": "",
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsProtected": false,
"IsViewed": false,
"IsBin": false,
"IsRenamed": false,
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"IsGenerated": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"Type": 2,
"IsLFSFile": false,
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 4,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 4
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 1,
"RightIdx": 0,
"Match": 2,
"Type": 3,
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 1,
"Match": 1,
"Type": 2,
"Content": "+FROM python:3.14-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2
},
{
"Content": " LABEL org.opencontainers.image.source=\"https://github.com/luketainton/pypilot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 4,
"RightIdx": 4
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightIdx": 26,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 26
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
]
}
]
},
{
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"IsViewed": false,
"Addition": 9,
"EntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"Name": "pyproject.toml",
"Deletion": 31,
"OldEntryMode": "",
"IsBin": false,
"IsIncomplete": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"Type": 4,
"Content": "@@ -7,50 +7,28 @@ authors = [",
"Comments": null,
"SectionInfo": {
"RightIdx": 7,
"LeftHunkSize": 50,
"RightHunkSize": 28,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 7
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 7,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " {name = \"Luke Tainton\", email = \"luke@tainton.uk\"},"
},
{
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " requires-python = \"<4.0,>=3.11\""
},
{
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 11,
"Match": 0,
"Type": 1
},
{
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- \"astroid==3.3.11\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- \"attrs==25.3.0\","
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"certifi==2025.7.14\","
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"charset-normalizer==3.4.2\",",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- \"click==8.2.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dill==0.4.0\",",
"Comments": null
},
{
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"exceptiongroup==1.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"idna==3.10\","
},
{
"Type": 3,
"Content": "- \"iniconfig==2.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"lazy-object-proxy==1.11.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"mccabe==0.7.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"mypy-extensions==1.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22
},
{
"Content": "- \"packaging==25.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- \"pathspec==0.12.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"platformdirs==4.3.8\","
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pluggy==1.6.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"py==1.11.0\","
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pyparsing==3.2.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"requests==2.32.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"six==1.17.0\","
},
{
"Match": -1,
"Type": 3,
"Content": "- \"tabulate==0.9.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 0
},
{
"Content": "- \"tomli==2.2.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- \"tomlkit==0.13.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 34,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"urllib3==2.5.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"wrapt==1.17.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": 6,
"Type": 2,
"Content": "+ \"requests==2.32.5\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12
},
{
"RightIdx": 13,
"Match": 7,
"Type": 2,
"Content": "+ \"tabulate==0.10.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 14
},
{
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37
},
{
"Content": " [project.scripts]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 16,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 39,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " app = \"app.main:main\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": 42,
"Type": 3,
"Content": "-"
},
{
"Type": 3,
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 43
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0,
"Match": 44,
"Type": 3,
"Content": "-dev-dependencies = [",
"Comments": null
},
{
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 19,
"Match": 38,
"Type": 2,
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 39,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 40,
"Type": 2,
"Content": "+ \"black<26.3.1,>=26.3.0\","
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"coverage<8.0.0,>=7.5.0\","
},
{
"Content": "- \"pylint<4.0.0,>=3.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0,
"Match": 47,
"Type": 3
},
{
"Content": "+ \"pylint<4.1.0,>=4.0.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": 46,
"Type": 2
},
{
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 24,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 25,
"Match": 49,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " \"requests-mock<2.0.0,>=1.12.1\",",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": 0,
"Type": 1,
"Content": " [tool.pdm.build]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 29
},
{
"LeftIdx": 53,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " includes = []",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [build-system]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 32
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " requires = [\"pdm-backend\"]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\""
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "pyproject.toml",
"LastLeftIdx": 56,
"LastRightIdx": 34,
"LeftIdx": 57,
"RightIdx": 35
}
}
]
}
],
"IsGenerated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsRenamed": false,
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"OldName": "pyproject.toml",
"Type": 2,
"IsLFSFile": false
},
{
"Deletion": 1,
"IsCreated": false,
"IsGenerated": false,
"IsProtected": false,
"IsViewed": false,
"Name": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"OldName": "renovate.json",
"Addition": 16,
"EntryMode": "",
"IsDeleted": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,6 +8,11 @@",
"Comments": null,
"SectionInfo": {
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 6,
"RightHunkSize": 11,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " \"platformCommit\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9
},
{
"Type": 1,
"Content": " \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0
},
{
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitScope\": \"deps\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\",",
"Comments": null
},
{
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2,
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " \"vulnerabilityAlerts\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 12,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " \"enabled\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 13,
"LastRightIdx": 18,
"LeftIdx": 16,
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null,
"Path": "renovate.json"
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 21
},
{
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 22,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- }"
},
{
"LeftIdx": 0,
"RightIdx": 24,
"Match": 4,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"packageRules\": [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1
},
{
"RightIdx": 26,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null
},
{
"Content": "+ \"matchUpdateTypes\": [\"patch\"],",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2,
"Content": "+ ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"RightIdx": 36,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 20,
"LastRightIdx": 35,
"LeftIdx": 21
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " "
}
]
}
],
"Type": 2,
"OldEntryMode": "",
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"IsBin": false,
"IsLFSFile": false,
"IsRenamed": false,
"IsVendored": false
},
{
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsProtected": false,
"Addition": 271,
"Type": 2,
"IsBin": false,
"HasChangedSinceLastReview": false,
"OldName": "uv.lock",
"IsDeleted": false,
"IsIncomplete": false,
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"Name": "uv.lock",
"Deletion": 391,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -8,25 +8,16 @@ resolution-markers = [",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 16,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 25
},
"LeftIdx": 0
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0
},
{
"RightIdx": 10,
"Match": 0,
"Type": 1,
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"3.3.11\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 4,
"Type": 2,
"Content": "+version = \"4.0.4\"",
"Comments": null
},
{
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/74/dfb75f9ccd592bbedb175d4a32fc643cf569d7c218508bfbd6ea7ef9c091/astroid-3.3.11.tar.gz\", hash = \"sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce\", size = 400439, upload-time = \"2025-07-13T18:04:23.177Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 7
},
{
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 15,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl\", hash = \"sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec\", size = 275612, upload-time = \"2025-07-13T18:04:21.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"attrs\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"25.3.0\"",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz\", hash = \"sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b\", size = 812032, upload-time = \"2025-03-13T11:10:22.779Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl\", hash = \"sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3\", size = 63815, upload-time = \"2025-03-13T11:10:21.14Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 15,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26,
"RightIdx": 17,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 27,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "-version = \"25.1.0\""
},
{
"Content": "+version = \"26.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 25,
"Type": 2
},
{
"LeftIdx": 30,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null
},
{
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 23,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -34,91 +25,125 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 32,
"LastRightIdx": 23,
"LeftIdx": 34,
"RightIdx": 25,
"LeftHunkSize": 91,
"RightHunkSize": 125
}
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },"
},
{
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 26,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },"
},
{
"Type": 2,
"Content": "+ { name = \"pytokens\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": -1
},
{
"LeftIdx": 37,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 38,
"RightIdx": 0,
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449, upload-time = \"2025-01-29T04:15:40.373Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 30,
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/11/5f/25b7b149b8b7d3b958efa4faa56446560408c0f2651108a517526de0320a/black-26.3.0.tar.gz\", hash = \"sha256:4d438dfdba1c807c6c7c63c4f15794dda0820d2222e7c4105042ac9ddfc5dd0b\", size = 664127, upload-time = \"2026-03-06T17:42:33.7Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 31,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372, upload-time = \"2025-01-29T05:37:11.71Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865, upload-time = \"2025-01-29T05:37:14.309Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0,
"Match": 23,
"Type": 3
},
{
"Match": 24,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699, upload-time = \"2025-01-29T04:18:17.688Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0
},
{
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028, upload-time = \"2025-01-29T04:18:51.711Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0
},
{
"LeftIdx": 44,
"RightIdx": 0,
"Match": 26,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988, upload-time = \"2025-01-29T05:37:16.707Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985, upload-time = \"2025-01-29T05:37:18.273Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 0,
"Match": 27
},
{
"Match": 28,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816, upload-time = \"2025-01-29T04:18:33.823Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860, upload-time = \"2025-01-29T04:19:12.944Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 0,
"Match": 29
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673, upload-time = \"2025-01-29T05:37:20.574Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 30,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190, upload-time = \"2025-01-29T05:37:22.106Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926, upload-time = \"2025-01-29T04:18:58.564Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50
},
{
"RightIdx": 0,
"Match": 33,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613, upload-time = \"2025-01-29T04:19:27.63Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 51
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646, upload-time = \"2025-01-29T04:15:38.082Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52,
"RightIdx": 0,
"Match": 34,
"Type": 3
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/ec/e4db9f2b2db8226ae20d48b589c69fd64477657bf241c8ccaea3bc4feafa/black-26.3.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:3da07abe65732483e915ab7f9c7c50332c293056436e9519373775d62539607c\", size = 1851905, upload-time = \"2026-03-06T17:46:15.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": 9
},
{
"LeftIdx": 0,
"RightIdx": 33,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/2c/ccecfcbd6a0610ecf554e852a146f053eaeb5b281dd9cb634338518c765e/black-26.3.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:fc9fd683ccabc3dc9791b93db494d93b5c6c03b105453b76d71e5474e9dfa6e7\", size = 1689299, upload-time = \"2026-03-06T17:46:17.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 34,
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/53/8dcb860242012d6da9c6b1b930c3e4c947eb42feb1fc70f2a4e7332c90c5/black-26.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:8e2c7e2c5ee09ff575869258b2c07064c952637918fc5e15f6ebd45e45eae0aa\", size = 1753902, upload-time = \"2026-03-06T17:46:19.592Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 35,
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/21/f37b3efcc8cf2d01ec9eb5466598aa53bed2292db236723ac4571e24c4de/black-26.3.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:a849286bfc3054eaeb233b6df9056fcf969ee18bf7ecb71b0257e838a0f05e6d\", size = 1413841, upload-time = \"2026-03-06T17:46:20.981Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/74/e70f5f2a74301d8f10276b90715699d51d7db1c3dd79cf13966d32ba7b18/black-26.3.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:c93c83af43cda73ed8265d001214779ab245fa7a861a75b3e43828f4fb1f5657\", size = 1220105, upload-time = \"2026-03-06T17:46:23.269Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1d/76/b21711045b7f4c4f1774048d0b34dd10a265c42255658b251ce3303ae3c7/black-26.3.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:c2b1e5eec220b419e3591a0aaa6351bd3a9c01fe6291fbaf76d84308eb7a2ede\", size = 1895944, upload-time = \"2026-03-06T17:46:24.841Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 37,
"Match": 14,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f2/c3/8c56e73283326bc92a36101c660228fff09a2403a57a03cacf3f7f84cf62/black-26.3.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1bab64de70bccc992432bee56cdffbe004ceeaa07352127c386faa87e81f9261\", size = 1718669, upload-time = \"2026-03-06T17:46:26.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 38,
"Match": 15,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7b/8b/712a3ae8f17c1f3cd6f9ac2fffb167a27192f5c7aba68724e8c4ab8474ad/black-26.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:5b6c5f734290803b7b26493ffd734b02b72e6c90d82d45ac4d5b862b9bdf7720\", size = 1794844, upload-time = \"2026-03-06T17:46:28.334Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 40,
"Match": 17,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/5b/ee955040e446df86473287dd24dc69c80dd05e02cc358bca90e22059f7b1/black-26.3.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:7c767396af15b54e1a6aae99ddf241ae97e589f666b1d22c4b6618282a04e4ca\", size = 1420461, upload-time = \"2026-03-06T17:46:29.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 41,
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/12/77/40b8bd44f032bb34c9ebf47ffc5bb47a2520d29e0a4b8a780ab515223b5a/black-26.3.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:765fd6ddd00f35c55250fdc6b790c272d54ac3f44da719cc42df428269b45980\", size = 1229667, upload-time = \"2026-03-06T17:46:31.654Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/28/c3/21a834ce3de02c64221243f2adac63fa3c3f441efdb3adbf4136b33dfeb0/black-26.3.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:59754fd8f43ef457be190594c07a52c999e22cb1534dc5344bff1d46fdf1027d\", size = 1895195, upload-time = \"2026-03-06T17:46:33.12Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 42
},
{
"RightIdx": 43,
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1c/f9/212d9697dd78362dadb778d4616b74c8c2cf7f2e4a55aac2adeb0576f2e9/black-26.3.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1fd94cfee67b8d336761a0b08629a25938e4a491c440951ce517a7209c99b5ff\", size = 1718472, upload-time = \"2026-03-06T17:46:34.576Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a2/dd/da980b2f512441375b73cb511f38a2c3db4be83ccaa1302b8d39c9fa2dff/black-26.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:6f7b3e653a90ca1ef4e821c20f8edaee80b649c38d2532ed2e9073a9534b14a7\", size = 1793741, upload-time = \"2026-03-06T17:46:36.261Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/11/cd69ae8826fe3bc6eaf525c8c557266d522b258154a2968eb46d6d25fac7/black-26.3.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:f8fb9d7c2496adc83614856e1f6e55a9ce4b7ae7fc7f45b46af9189ddb493464\", size = 1422522, upload-time = \"2026-03-06T17:46:37.607Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2
},
{
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/f5/647cf50255203eb286be197925e86eedc101d5409147505db3e463229228/black-26.3.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:e8618c1d06838f56afbcb3ffa1aa16436cec62b86b38c7b32ca86f53948ffb91\", size = 1231807, upload-time = \"2026-03-06T17:46:39.072Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 47,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ff/77/b197e701f15fd694d20d8ee0001efa2e29eba917aa7c3610ff7b10ae0f88/black-26.3.0-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:d0c6f64ead44f4369c66f1339ecf68e99b40f2e44253c257f7807c5a3ef0ca32\", size = 1889209, upload-time = \"2026-03-06T17:46:40.453Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 48,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/85/b4d4924ac898adc2e39fc7a923bed99797535bc16dea4bc63944c3903c2b/black-26.3.0-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:ed6f0809134e51ec4a7509e069cdfa42bf996bd0fd1df6d3146b907f36e28893\", size = 1720830, upload-time = \"2026-03-06T17:46:42.009Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 49,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/b1/5c0bf29fe5b43fcc6f3e8480c6566d21a02d4e702b3846944e7daa06dea9/black-26.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:cc6ac0ea5dd5fa6311ca82edfa3620cba0ed0426022d10d2d5d39aedbf3e1958\", size = 1787676, upload-time = \"2026-03-06T17:46:43.382Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/ce/cc8cf14806c144d6a16512272c537d5450f50675d3e8c038705430e90fd9/black-26.3.0-cp314-cp314-win_amd64.whl\", hash = \"sha256:884bc0aefa96adabcba0b77b10e9775fd52d4b766e88c44dc6f41f7c82787fc8\", size = 1445406, upload-time = \"2026-03-06T17:46:44.948Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 50,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/bb/049ea0fad9f8bdec7b647948adcf74bb720bd71dcb213decd553e05b2699/black-26.3.0-cp314-cp314-win_arm64.whl\", hash = \"sha256:be3bd02aab5c4ab03703172f5530ddc8fc8b5b7bb8786230e84c9e011cee9ca1\", size = 1257945, upload-time = \"2026-03-06T17:46:46.432Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 52,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/d7/7360654ba4f8b41afcaeb5aca973cfea5591da75aff79b0a8ae0bb8883f6/black-26.3.0-py3-none-any.whl\", hash = \"sha256:e825d6b121910dff6f04d7691f826d2449327e8e71c26254c030c4f3d2311985\", size = 206848, upload-time = \"2026-03-06T17:42:31.133Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 54,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 55
},
{
"LeftIdx": 56,
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-version = \"2025.7.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57
},
{
"Content": "+version = \"2026.2.25\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 57,
"Match": 47,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 59,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz\", hash = \"sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995\", size = 163981, upload-time = \"2025-07-14T03:29:28.449Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 59,
"Match": 50,
"Type": 2
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 60,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 54,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl\", hash = \"sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2\", size = 162722, upload-time = \"2025-07-14T03:29:26.863Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 61,
"Match": 53
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 63,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64,
"RightIdx": 64
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 65,
"Match": 0,
"Type": 1,
"Content": " name = \"charset-normalizer\"",
"Comments": null
},
{
"Match": 60,
"Type": 3,
"Content": "-version = \"3.4.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+version = \"3.4.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66,
"Match": 59
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 67,
"Match": 0,
"Type": 1
},
{
"Match": 63,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz\", hash = \"sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63\", size = 126367, upload-time = \"2025-05-02T08:34:42.01Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 68,
"Match": 62,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 69
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/85/4c40d00dcc6284a1c1ad5de5e0996b06f39d8232f1031cd23c2f5c07ee86/charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2\", size = 198794, upload-time = \"2025-05-02T08:32:11.945Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/41/d9/7a6c0b9db952598e97e93cbdfcb91bacd89b9b88c7c983250a77c008703c/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645\", size = 142846, upload-time = \"2025-05-02T08:32:13.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": 106,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/82/a37989cda2ace7e37f36c1a8ed16c58cf48965a79c2142713244bf945c89/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd\", size = 153350, upload-time = \"2025-05-02T08:32:15.873Z\" },"
},
{
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/68/a576b31b694d07b53807269d05ec3f6f1093e9545e8607121995ba7a8313/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8\", size = 145657, upload-time = \"2025-05-02T08:32:17.283Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 73
},
{
"LeftIdx": 74,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/9b/ad67f03d74554bed3aefd56fe836e1623a50780f7c998d00ca128924a499/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f\", size = 147260, upload-time = \"2025-05-02T08:32:18.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 75,
"RightIdx": 0,
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/e6/8aebae25e328160b20e31a7e9929b1578bbdc7f42e66f46595a432f8539e/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7\", size = 149164, upload-time = \"2025-05-02T08:32:20.333Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/f2/b3c2f07dbcc248805f10e67a0262c93308cfa149a4cd3d1fe01f593e5fd2/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9\", size = 144571, upload-time = \"2025-05-02T08:32:21.86Z\" },"
},
{
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/60/5b/c3f3a94bc345bc211622ea59b4bed9ae63c00920e2e8f11824aa5708e8b7/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544\", size = 151952, upload-time = \"2025-05-02T08:32:23.434Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/4d/ff460c8b474122334c2fa394a3f99a04cf11c646da895f81402ae54f5c42/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82\", size = 155959, upload-time = \"2025-05-02T08:32:24.993Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0,
"Match": 113
},
{
"LeftIdx": 79,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a2/2b/b964c6a2fda88611a1fe3d4c400d39c66a42d6c169c924818c848f922415/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0\", size = 153030, upload-time = \"2025-05-02T08:32:26.435Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/59/2e/d3b9811db26a5ebf444bc0fa4f4be5aa6d76fc6e1c0fd537b16c14e849b6/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5\", size = 148015, upload-time = \"2025-05-02T08:32:28.376Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 81,
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/90/07/c5fd7c11eafd561bb51220d600a788f1c8d77c5eef37ee49454cc5c35575/charset_normalizer-3.4.2-cp311-cp311-win32.whl\", hash = \"sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a\", size = 98106, upload-time = \"2025-05-02T08:32:30.281Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/05/5e33dbef7e2f773d672b6d79f10ec633d4a71cd96db6673625838a4fd532/charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28\", size = 105402, upload-time = \"2025-05-02T08:32:32.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": 117
},
{
"LeftIdx": 83,
"RightIdx": 0,
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7\", size = 199936, upload-time = \"2025-05-02T08:32:33.712Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3\", size = 143790, upload-time = \"2025-05-02T08:32:35.768Z\" },"
},
{
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a\", size = 153924, upload-time = \"2025-05-02T08:32:37.284Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214\", size = 146626, upload-time = \"2025-05-02T08:32:38.803Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 0,
"Match": 121
},
{
"LeftIdx": 87,
"RightIdx": 0,
"Match": 122,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a\", size = 148567, upload-time = \"2025-05-02T08:32:40.251Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 123,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd\", size = 150957, upload-time = \"2025-05-02T08:32:41.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981\", size = 145408, upload-time = \"2025-05-02T08:32:43.709Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c\", size = 153399, upload-time = \"2025-05-02T08:32:46.197Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": 125,
"Type": 3
},
{
"LeftIdx": 91,
"RightIdx": 0,
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b\", size = 156815, upload-time = \"2025-05-02T08:32:48.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d\", size = 154537, upload-time = \"2025-05-02T08:32:49.719Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 92,
"RightIdx": 0,
"Match": 127
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f\", size = 149565, upload-time = \"2025-05-02T08:32:51.404Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 93,
"RightIdx": 0,
"Match": 128,
"Type": 3
},
{
"LeftIdx": 94,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl\", hash = \"sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c\", size = 98357, upload-time = \"2025-05-02T08:32:53.079Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e\", size = 105776, upload-time = \"2025-05-02T08:32:54.573Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": 130
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0\", size = 199622, upload-time = \"2025-05-02T08:32:56.363Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96,
"RightIdx": 0,
"Match": 131
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf\", size = 143435, upload-time = \"2025-05-02T08:32:58.551Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e\", size = 153653, upload-time = \"2025-05-02T08:33:00.342Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98
},
{
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1\", size = 146231, upload-time = \"2025-05-02T08:33:02.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 99,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c\", size = 148243, upload-time = \"2025-05-02T08:33:04.063Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101,
"RightIdx": 0,
"Match": 136,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691\", size = 150442, upload-time = \"2025-05-02T08:33:06.418Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0\", size = 145147, upload-time = \"2025-05-02T08:33:08.183Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 102,
"RightIdx": 0,
"Match": 137,
"Type": 3
},
{
"LeftIdx": 103,
"RightIdx": 0,
"Match": 138,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b\", size = 153057, upload-time = \"2025-05-02T08:33:09.986Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 104,
"RightIdx": 0,
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff\", size = 156454, upload-time = \"2025-05-02T08:33:11.814Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105,
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b\", size = 154174, upload-time = \"2025-05-02T08:33:13.707Z\" },"
},
{
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148\", size = 149166, upload-time = \"2025-05-02T08:33:15.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl\", hash = \"sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7\", size = 98064, upload-time = \"2025-05-02T08:33:17.06Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": 142
},
{
"LeftIdx": 108,
"RightIdx": 0,
"Match": 143,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980\", size = 105641, upload-time = \"2025-05-02T08:33:18.753Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 109,
"RightIdx": 0,
"Match": 144,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl\", hash = \"sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0\", size = 52626, upload-time = \"2025-05-02T08:34:40.053Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8\", size = 206988, upload-time = \"2025-10-14T04:40:33.79Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0\", size = 147324, upload-time = \"2025-10-14T04:40:34.961Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71,
"Match": 66
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3\", size = 142742, upload-time = \"2025-10-14T04:40:36.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 67,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc\", size = 160863, upload-time = \"2025-10-14T04:40:37.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 68
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897\", size = 157837, upload-time = \"2025-10-14T04:40:38.435Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381\", size = 151550, upload-time = \"2025-10-14T04:40:40.053Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815\", size = 149162, upload-time = \"2025-10-14T04:40:41.163Z\" },"
},
{
"RightIdx": 77,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0\", size = 150019, upload-time = \"2025-10-14T04:40:42.276Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 78,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl\", hash = \"sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161\", size = 143310, upload-time = \"2025-10-14T04:40:43.439Z\" },"
},
{
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4\", size = 162022, upload-time = \"2025-10-14T04:40:44.547Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89\", size = 149383, upload-time = \"2025-10-14T04:40:46.018Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 80,
"Match": 75
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81,
"Match": 76,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569\", size = 159098, upload-time = \"2025-10-14T04:40:47.081Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224\", size = 152991, upload-time = \"2025-10-14T04:40:48.246Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": 77,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 83,
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl\", hash = \"sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a\", size = 99456, upload-time = \"2025-10-14T04:40:49.376Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 84,
"Match": 79,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016\", size = 106978, upload-time = \"2025-10-14T04:40:50.844Z\" },",
"Comments": null
},
{
"Match": 80,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1\", size = 99969, upload-time = \"2025-10-14T04:40:52.272Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85
},
{
"Match": 81,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394\", size = 208425, upload-time = \"2025-10-14T04:40:53.353Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 86
},
{
"LeftIdx": 0,
"RightIdx": 87,
"Match": 82,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25\", size = 148162, upload-time = \"2025-10-14T04:40:54.558Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88,
"Match": 83,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef\", size = 144558, upload-time = \"2025-10-14T04:40:55.677Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d\", size = 161497, upload-time = \"2025-10-14T04:40:57.217Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 89,
"Match": 84
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 85,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8\", size = 159240, upload-time = \"2025-10-14T04:40:58.358Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": 86,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86\", size = 153471, upload-time = \"2025-10-14T04:40:59.468Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a\", size = 150864, upload-time = \"2025-10-14T04:41:00.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": 87
},
{
"Match": 88,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f\", size = 150647, upload-time = \"2025-10-14T04:41:01.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 93
},
{
"LeftIdx": 0,
"RightIdx": 94,
"Match": 89,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl\", hash = \"sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc\", size = 145110, upload-time = \"2025-10-14T04:41:03.231Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 95,
"Match": 90,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf\", size = 162839, upload-time = \"2025-10-14T04:41:04.715Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 91,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15\", size = 150667, upload-time = \"2025-10-14T04:41:05.827Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 96
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 92,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9\", size = 160535, upload-time = \"2025-10-14T04:41:06.938Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 98,
"Match": 93,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0\", size = 154816, upload-time = \"2025-10-14T04:41:08.101Z\" },",
"Comments": null
},
{
"RightIdx": 99,
"Match": 94,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl\", hash = \"sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26\", size = 99694, upload-time = \"2025-10-14T04:41:09.23Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 100,
"Match": 95,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525\", size = 107131, upload-time = \"2025-10-14T04:41:10.467Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3\", size = 100390, upload-time = \"2025-10-14T04:41:11.915Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 101,
"Match": 96
},
{
"LeftIdx": 0,
"RightIdx": 102,
"Match": 97,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 103,
"Match": 98,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 99,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 104
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 105,
"Match": 100,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 106,
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 107,
"Match": 102
},
{
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 108
},
{
"LeftIdx": 0,
"RightIdx": 109,
"Match": 104,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 110,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 111,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 112,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 113,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 114,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 115,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 116,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 117,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 118,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl\", hash = \"sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd\", size = 207746, upload-time = \"2025-10-14T04:41:33.773Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb\", size = 147889, upload-time = \"2025-10-14T04:41:34.897Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 119,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 120,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e\", size = 143641, upload-time = \"2025-10-14T04:41:36.116Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 121,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14\", size = 160779, upload-time = \"2025-10-14T04:41:37.229Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 122,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191\", size = 159035, upload-time = \"2025-10-14T04:41:38.368Z\" },",
"Comments": null
},
{
"RightIdx": 123,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838\", size = 152542, upload-time = \"2025-10-14T04:41:39.862Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 124,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6\", size = 149524, upload-time = \"2025-10-14T04:41:41.319Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e\", size = 150395, upload-time = \"2025-10-14T04:41:42.539Z\" },"
},
{
"RightIdx": 126,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl\", hash = \"sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c\", size = 143680, upload-time = \"2025-10-14T04:41:43.661Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090\", size = 162045, upload-time = \"2025-10-14T04:41:44.821Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 127,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152\", size = 149687, upload-time = \"2025-10-14T04:41:46.442Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 129,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl\", hash = \"sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828\", size = 160014, upload-time = \"2025-10-14T04:41:47.631Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 130,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec\", size = 154044, upload-time = \"2025-10-14T04:41:48.81Z\" },"
},
{
"RightIdx": 131,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl\", hash = \"sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9\", size = 99940, upload-time = \"2025-10-14T04:41:49.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c\", size = 107104, upload-time = \"2025-10-14T04:41:51.051Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132
},
{
"RightIdx": 133,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2\", size = 100743, upload-time = \"2025-10-14T04:41:52.122Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 134,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110,
"RightIdx": 135,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 111,
"RightIdx": 136,
"Match": 0,
"Type": 1
},
{
"RightIdx": 137,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112
},
{
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 113
},
{
"Type": 3,
"Content": "-version = \"8.2.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 0,
"Match": 175
},
{
"Match": 174,
"Type": 2,
"Content": "+version = \"8.3.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 116,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 142,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 143
},
{
"LeftIdx": 119,
"RightIdx": 0,
"Match": 181,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e9/87/105111999772ec9730e3d4d910c723ea9763ece2ec441533a5cea1e87e3c/click-8.2.2.tar.gz\", hash = \"sha256:068616e6ef9705a07b6db727cb9c248f4eb9dae437a30239f56fa94b18b852ef\", size = 263977, upload-time = \"2025-08-02T02:23:41.102Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 180,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 144
},
{
"LeftIdx": 120,
"RightIdx": 145,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 121,
"RightIdx": 0,
"Match": 184,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/85/e7297e34133ae1cfde3bffd30c24e1ef055248251baa877834e048687a28/click-8.2.2-py3-none-any.whl\", hash = \"sha256:52e1e9f5d3db8c85aa76968c7c67ed41ddbacb167f43201511c8fd61eb5ba2ca\", size = 103900, upload-time = \"2025-08-02T02:23:39.299Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 146,
"Match": 183,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 147,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123,
"RightIdx": 148,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 149,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -132,116 +157,128 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 124,
"LastRightIdx": 149,
"LeftIdx": 132,
"RightIdx": 157,
"LeftHunkSize": 116,
"RightHunkSize": 128
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 132,
"RightIdx": 157,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 133,
"RightIdx": 158,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 134,
"RightIdx": 159,
"Match": 0,
"Type": 1,
"Content": " name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"7.10.1\""
},
{
"LeftIdx": 0,
"RightIdx": 160,
"Match": 4,
"Type": 2,
"Content": "+version = \"7.13.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 161
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/87/0e/66dbd4c6a7f0758a8d18044c048779ba21fb94856e1edcf764bd5403e710/coverage-7.10.1.tar.gz\", hash = \"sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57\", size = 819938, upload-time = \"2025-07-27T14:13:39.045Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 8
},
{
"RightIdx": 162,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 163,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/8e/ef088112bd1b26e2aa931ee186992b3e42c222c64f33e381432c8ee52aae/coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f\", size = 214747, upload-time = \"2025-07-27T14:11:18.217Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/76/a1e46f3c6e0897758eb43af88bb3c763cb005f4950769f7b553e22aa5f89/coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1\", size = 215128, upload-time = \"2025-07-27T14:11:19.706Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/4d/903bafb371a8c887826ecc30d3977b65dfad0e1e66aa61b7e173de0828b0/coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437\", size = 245140, upload-time = \"2025-07-27T14:11:21.261Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 0,
"Match": 79
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/f1/1f8f09536f38394a8698dd08a0e9608a512eacee1d3b771e2d06397f77bf/coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7\", size = 246977, upload-time = \"2025-07-27T14:11:23.15Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": 80
},
{
"LeftIdx": 143,
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/cc/ed6bbc5a3bdb36ae1bca900bbbfdcb23b260ef2767a7b2dab38b92f61adf/coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770\", size = 249140, upload-time = \"2025-07-27T14:11:24.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/10/f5/e881ade2d8e291b60fa1d93d6d736107e940144d80d21a0d4999cff3642f/coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262\", size = 246869, upload-time = \"2025-07-27T14:11:26.156Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/b9/6a5665cb8996e3cd341d184bb11e2a8edf01d8dadcf44eb1e742186cf243/coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3\", size = 244899, upload-time = \"2025-07-27T14:11:27.622Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 0,
"Match": 83
},
{
"Match": 84,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/11/24156776709c4e25bf8a33d6bb2ece9a9067186ddac19990f6560a7f8130/coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0\", size = 245507, upload-time = \"2025-07-27T14:11:29.544Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/db/a6f0340b7d6802a79928659c9a32bc778ea420e87a61b568d68ac36d45a8/coverage-7.10.1-cp311-cp311-win32.whl\", hash = \"sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be\", size = 217167, upload-time = \"2025-07-27T14:11:31.349Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0,
"Match": 85
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148,
"RightIdx": 0,
"Match": 86,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f5/6f/1990eb4fd05cea4cfabdf1d587a997ac5f9a8bee883443a1d519a2a848c9/coverage-7.10.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c\", size = 218054, upload-time = \"2025-07-27T14:11:33.202Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 87,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/4d/5e061d6020251b20e9b4303bb0b7900083a1a384ec4e5db326336c1c4abd/coverage-7.10.1-cp311-cp311-win_arm64.whl\", hash = \"sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293\", size = 216483, upload-time = \"2025-07-27T14:11:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149
},
{
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a5/3f/b051feeb292400bd22d071fdf933b3ad389a8cef5c80c7866ed0c7414b9e/coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4\", size = 214934, upload-time = \"2025-07-27T14:11:36.096Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/e4/a61b27d5c4c2d185bdfb0bfe9d15ab4ac4f0073032665544507429ae60eb/coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e\", size = 215173, upload-time = \"2025-07-27T14:11:38.005Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": 89
},
{
"LeftIdx": 152,
"RightIdx": 0,
"Match": 90,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/01/40a6ee05b60d02d0bc53742ad4966e39dccd450aafb48c535a64390a3552/coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4\", size = 246190, upload-time = \"2025-07-27T14:11:39.887Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 0,
"Match": 91,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/11/ef/a28d64d702eb583c377255047281305dc5a5cfbfb0ee36e721f78255adb6/coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a\", size = 248618, upload-time = \"2025-07-27T14:11:41.841Z\" },"
},
{
"Match": 92,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/ad/73d018bb0c8317725370c79d69b5c6e0257df84a3b9b781bda27a438a3be/coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe\", size = 250081, upload-time = \"2025-07-27T14:11:43.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/dd/496adfbbb4503ebca5d5b2de8bed5ec00c0a76558ffc5b834fd404166bc9/coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386\", size = 247990, upload-time = \"2025-07-27T14:11:45.244Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 0,
"Match": 93,
"Type": 3
},
{
"RightIdx": 0,
"Match": 94,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/3c/a9331a7982facfac0d98a4a87b36ae666fe4257d0f00961a3a9ef73e015d/coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6\", size = 246191, upload-time = \"2025-07-27T14:11:47.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156
},
{
"LeftIdx": 157,
"RightIdx": 0,
"Match": 95,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0c/75345895013b83f7afe92ec595e15a9a525ede17491677ceebb2ba5c3d85/coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f\", size = 247400, upload-time = \"2025-07-27T14:11:48.643Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 158,
"RightIdx": 0,
"Match": 96,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/a9/98b268cfc5619ef9df1d5d34fee408ecb1542d9fd43d467e5c2f28668cd4/coverage-7.10.1-cp312-cp312-win32.whl\", hash = \"sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca\", size = 217338, upload-time = \"2025-07-27T14:11:50.258Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/31/22a5440e4d1451f253c5cd69fdcead65e92ef08cd4ec237b8756dc0b20a7/coverage-7.10.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3\", size = 218125, upload-time = \"2025-07-27T14:11:52.034Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 0,
"Match": 97
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/2b/40d9f0ce7ee839f08a43c5bfc9d05cec28aaa7c9785837247f96cbe490b9/coverage-7.10.1-cp312-cp312-win_arm64.whl\", hash = \"sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4\", size = 216523, upload-time = \"2025-07-27T14:11:53.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 160,
"RightIdx": 0,
"Match": 98
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/72/135ff5fef09b1ffe78dbe6fcf1e16b2e564cd35faeacf3d63d60d887f12d/coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39\", size = 214960, upload-time = \"2025-07-27T14:11:55.959Z\" },"
},
{
"Match": 100,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/aa/73a5d1a6fc08ca709a8177825616aa95ee6bf34d522517c2595484a3e6c9/coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7\", size = 215220, upload-time = \"2025-07-27T14:11:57.899Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 162,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/40/3124fdd45ed3772a42fc73ca41c091699b38a2c3bd4f9cb564162378e8b6/coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892\", size = 245772, upload-time = \"2025-07-27T14:12:00.422Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": 101
},
{
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/42/62/a77b254822efa8c12ad59e8039f2bc3df56dc162ebda55e1943e35ba31a5/coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7\", size = 248116, upload-time = \"2025-07-27T14:12:03.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1d/01/8101f062f472a3a6205b458d18ef0444a63ae5d36a8a5ed5dd0f6167f4db/coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994\", size = 249554, upload-time = \"2025-07-27T14:12:04.668Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165
},
{
"LeftIdx": 166,
"RightIdx": 0,
"Match": 104,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/7b/e51bc61573e71ff7275a4f167aecbd16cb010aefdf54bcd8b0a133391263/coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0\", size = 247766, upload-time = \"2025-07-27T14:12:06.234Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/71/1c96d66a51d4204a9d6d12df53c4071d87e110941a2a1fe94693192262f5/coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7\", size = 245735, upload-time = \"2025-07-27T14:12:08.305Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/d5/efbc2ac4d35ae2f22ef6df2ca084c60e13bd9378be68655e3268c80349ab/coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7\", size = 247118, upload-time = \"2025-07-27T14:12:09.903Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/22/073848352bec28ca65f2b6816b892fcf9a31abbef07b868487ad15dd55f1/coverage-7.10.1-cp313-cp313-win32.whl\", hash = \"sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7\", size = 217381, upload-time = \"2025-07-27T14:12:11.535Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/df/df6a0ff33b042f000089bd11b6bb034bab073e2ab64a56e78ed882cba55d/coverage-7.10.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e\", size = 218152, upload-time = \"2025-07-27T14:12:13.182Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 0,
"Match": 108
},
{
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/e3/5085ca849a40ed6b47cdb8f65471c2f754e19390b5a12fa8abd25cbfaa8f/coverage-7.10.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4\", size = 216559, upload-time = \"2025-07-27T14:12:14.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171
},
{
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/93/58714efbfdeb547909feaabe1d67b2bdd59f0597060271b9c548d5efb529/coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72\", size = 215677, upload-time = \"2025-07-27T14:12:16.68Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0c/18eaa5897e7e8cb3f8c45e563e23e8a85686b4585e29d53cacb6bc9cb340/coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af\", size = 215899, upload-time = \"2025-07-27T14:12:18.758Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c1/9d1affacc3c75b5a184c140377701bbf14fc94619367f07a269cd9e4fed6/coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7\", size = 257140, upload-time = \"2025-07-27T14:12:20.357Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175,
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/0f/339bc6b8fa968c346df346068cca1f24bdea2ddfa93bb3dc2e7749730962/coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759\", size = 259005, upload-time = \"2025-07-27T14:12:22.007Z\" },"
},
{
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/22/89390864b92ea7c909079939b71baba7e5b42a76bf327c1d615bd829ba57/coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324\", size = 261143, upload-time = \"2025-07-27T14:12:23.746Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0
},
{
"LeftIdx": 177,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/56/3d04d89017c0c41c7a71bd69b29699d919b6bbf2649b8b2091240b97dd6a/coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53\", size = 258735, upload-time = \"2025-07-27T14:12:25.73Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/40/312252c8afa5ca781063a09d931f4b9409dc91526cd0b5a2b84143ffafa2/coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f\", size = 256871, upload-time = \"2025-07-27T14:12:27.767Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": 116
},
{
"RightIdx": 0,
"Match": 117,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/2b/564947d5dede068215aaddb9e05638aeac079685101462218229ddea9113/coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd\", size = 257692, upload-time = \"2025-07-27T14:12:29.347Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179
},
{
"RightIdx": 0,
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/93/1b/c8a867ade85cb26d802aea2209b9c2c80613b9c122baa8c8ecea6799648f/coverage-7.10.1-cp313-cp313t-win32.whl\", hash = \"sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c\", size = 218059, upload-time = \"2025-07-27T14:12:31.076Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180
},
{
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/fe/cd4ab40570ae83a516bf5e754ea4388aeedd48e660e40c50b7713ed4f930/coverage-7.10.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18\", size = 219150, upload-time = \"2025-07-27T14:12:32.746Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 181
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182,
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/16/6e5ed5854be6d70d0c39e9cb9dd2449f2c8c34455534c32c1a508c7dbdb5/coverage-7.10.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4\", size = 217014, upload-time = \"2025-07-27T14:12:34.406Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/54/8e/6d0bfe9c3d7121cf936c5f8b03e8c3da1484fb801703127dba20fb8bd3c7/coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl\", hash = \"sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c\", size = 214951, upload-time = \"2025-07-27T14:12:36.069Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 183,
"RightIdx": 0,
"Match": 121
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184,
"RightIdx": 0,
"Match": 122,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f2/29/e3e51a8c653cf2174c60532aafeb5065cea0911403fa144c9abe39790308/coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e\", size = 215229, upload-time = \"2025-07-27T14:12:37.759Z\" },",
"Comments": null
},
{
"LeftIdx": 185,
"RightIdx": 0,
"Match": 123,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e0/59/3c972080b2fa18b6c4510201f6d4dc87159d450627d062cd9ad051134062/coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b\", size = 245738, upload-time = \"2025-07-27T14:12:39.453Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2e/04/fc0d99d3f809452654e958e1788454f6e27b34e43f8f8598191c8ad13537/coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41\", size = 248045, upload-time = \"2025-07-27T14:12:41.387Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186,
"RightIdx": 0,
"Match": 124
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": 125,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/2e/afcbf599e77e0dfbf4c97197747250d13d397d27e185b93987d9eaac053d/coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f\", size = 249666, upload-time = \"2025-07-27T14:12:43.056Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/ae/bc47f7f8ecb7a06cbae2bf86a6fa20f479dd902bc80f57cff7730438059d/coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1\", size = 247692, upload-time = \"2025-07-27T14:12:44.83Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 188,
"RightIdx": 0,
"Match": 126
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/26/cbfa3092d31ccba8ba7647e4d25753263e818b4547eba446b113d7d1efdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2\", size = 245536, upload-time = \"2025-07-27T14:12:46.527Z\" },",
"Comments": null
},
{
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/56/77/9c68e92500e6a1c83d024a70eadcc9a173f21aadd73c4675fe64c9c43fdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4\", size = 246954, upload-time = \"2025-07-27T14:12:49.279Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0
},
{
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7f/a5/ba96671c5a669672aacd9877a5987c8551501b602827b4e84256da2a30a7/coverage-7.10.1-cp314-cp314-win32.whl\", hash = \"sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613\", size = 217616, upload-time = \"2025-07-27T14:12:51.214Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 191,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/3c/e1e1eb95fc1585f15a410208c4795db24a948e04d9bde818fe4eb893bc85/coverage-7.10.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e\", size = 218412, upload-time = \"2025-07-27T14:12:53.429Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/85/7e1e5be2cb966cba95566ba702b13a572ca744fbb3779df9888213762d67/coverage-7.10.1-cp314-cp314-win_arm64.whl\", hash = \"sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652\", size = 216776, upload-time = \"2025-07-27T14:12:55.482Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": 131,
"Type": 3
},
{
"LeftIdx": 194,
"RightIdx": 0,
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0f/5bb8f29923141cca8560fe2217679caf4e0db643872c1945ac7d8748c2a7/coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl\", hash = \"sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894\", size = 215698, upload-time = \"2025-07-27T14:12:57.225Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/29/547038ffa4e8e4d9e82f7dfc6d152f75fcdc0af146913f0ba03875211f03/coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5\", size = 215902, upload-time = \"2025-07-27T14:12:59.071Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196,
"RightIdx": 0,
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/8a/7aaa8fbfaed900147987a424e112af2e7790e1ac9cd92601e5bd4e1ba60a/coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2\", size = 257230, upload-time = \"2025-07-27T14:13:01.248Z\" },",
"Comments": null
},
{
"LeftIdx": 197,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/1d/c252b5ffac44294e23a0d79dd5acf51749b39795ccc898faeabf7bee903f/coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb\", size = 259194, upload-time = \"2025-07-27T14:13:03.247Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/ad/6c8d9f83d08f3bac2e7507534d0c48d1a4f52c18e6f94919d364edbdfa8f/coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b\", size = 261316, upload-time = \"2025-07-27T14:13:04.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 198,
"RightIdx": 0,
"Match": 136
},
{
"Match": 137,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/4e/f9bbf3a36c061e2e0e0f78369c006d66416561a33d2bee63345aee8ee65e/coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea\", size = 258794, upload-time = \"2025-07-27T14:13:06.715Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0
},
{
"LeftIdx": 200,
"RightIdx": 0,
"Match": 138,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/87/82/e600bbe78eb2cb0541751d03cef9314bcd0897e8eea156219c39b685f869/coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd\", size = 256869, upload-time = \"2025-07-27T14:13:08.933Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 201,
"RightIdx": 0,
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/5d/2fc9a9236c5268f68ac011d97cd3a5ad16cc420535369bedbda659fdd9b7/coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d\", size = 257765, upload-time = \"2025-07-27T14:13:10.778Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202,
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/05/b4e00b2bd48a2dc8e1c7d2aea7455f40af2e36484ab2ef06deb85883e9fe/coverage-7.10.1-cp314-cp314t-win32.whl\", hash = \"sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47\", size = 218420, upload-time = \"2025-07-27T14:13:12.882Z\" },",
"Comments": null
},
{
"LeftIdx": 203,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/fb/d21d05f33ea27ece327422240e69654b5932b0b29e7fbc40fbab3cf199bf/coverage-7.10.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651\", size = 219536, upload-time = \"2025-07-27T14:13:14.718Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 142,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/68/7fea94b141281ed8be3d1d5c4319a97f2befc3e487ce33657fc64db2c45e/coverage-7.10.1-cp314-cp314t-win_arm64.whl\", hash = \"sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab\", size = 217190, upload-time = \"2025-07-27T14:13:16.85Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 204
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/64/922899cff2c0fd3496be83fa8b81230f5a8d82a2ad30f98370b133c2c83b/coverage-7.10.1-py3-none-any.whl\", hash = \"sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7\", size = 206597, upload-time = \"2025-07-27T14:13:37.221Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 205,
"RightIdx": 0,
"Match": 143,
"Type": 3
},
{
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053\", size = 219278, upload-time = \"2026-02-09T12:56:31.673Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 164
},
{
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11\", size = 219783, upload-time = \"2026-02-09T12:56:33.104Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 165
},
{
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa\", size = 250200, upload-time = \"2026-02-09T12:56:34.474Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 167,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7\", size = 252114, upload-time = \"2026-02-09T12:56:35.749Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00\", size = 254220, upload-time = \"2026-02-09T12:56:37.796Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 168,
"Match": 14,
"Type": 2
},
{
"RightIdx": 169,
"Match": 15,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef\", size = 256164, upload-time = \"2026-02-09T12:56:39.016Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 170,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903\", size = 250325, upload-time = \"2026-02-09T12:56:40.668Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171,
"Match": 17,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f\", size = 251913, upload-time = \"2026-02-09T12:56:41.97Z\" },"
},
{
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299\", size = 249974, upload-time = \"2026-02-09T12:56:43.323Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 172
},
{
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505\", size = 253741, upload-time = \"2026-02-09T12:56:45.155Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 173
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6\", size = 249695, upload-time = \"2026-02-09T12:56:46.636Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 174,
"Match": 20,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9\", size = 250599, upload-time = \"2026-02-09T12:56:48.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 175,
"Match": 21,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl\", hash = \"sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9\", size = 221780, upload-time = \"2026-02-09T12:56:50.479Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 176,
"Match": 22,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 177,
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f\", size = 222715, upload-time = \"2026-02-09T12:56:51.815Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 178,
"Match": 24,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f\", size = 221385, upload-time = \"2026-02-09T12:56:53.194Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 179,
"Match": 25,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459\", size = 219449, upload-time = \"2026-02-09T12:56:54.889Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3\", size = 219810, upload-time = \"2026-02-09T12:56:56.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 180,
"Match": 26,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 181,
"Match": 27,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634\", size = 251308, upload-time = \"2026-02-09T12:56:57.858Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 182,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3\", size = 254052, upload-time = \"2026-02-09T12:56:59.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 183,
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa\", size = 255165, upload-time = \"2026-02-09T12:57:01.287Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 184,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3\", size = 257432, upload-time = \"2026-02-09T12:57:02.637Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 185,
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a\", size = 251716, upload-time = \"2026-02-09T12:57:04.056Z\" },"
},
{
"RightIdx": 186,
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7\", size = 253089, upload-time = \"2026-02-09T12:57:05.503Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc\", size = 251232, upload-time = \"2026-02-09T12:57:06.879Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 187
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 188,
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47\", size = 255299, upload-time = \"2026-02-09T12:57:08.245Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 189,
"Match": 35,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985\", size = 250796, upload-time = \"2026-02-09T12:57:10.142Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 36,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0\", size = 252673, upload-time = \"2026-02-09T12:57:12.197Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 190
},
{
"LeftIdx": 0,
"RightIdx": 191,
"Match": 37,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl\", hash = \"sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246\", size = 221990, upload-time = \"2026-02-09T12:57:14.085Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 192,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126\", size = 222800, upload-time = \"2026-02-09T12:57:15.944Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d\", size = 221415, upload-time = \"2026-02-09T12:57:17.497Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 193
},
{
"RightIdx": 194,
"Match": 40,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 195,
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 196,
"Match": 42
},
{
"RightIdx": 197,
"Match": 43,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 198,
"Match": 44,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 199,
"Match": 45,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },"
},
{
"RightIdx": 200,
"Match": 46,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 201,
"Match": 47,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 202,
"Match": 48,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 203,
"Match": 49
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 204,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },"
},
{
"RightIdx": 205,
"Match": 51,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 206,
"Match": 52,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 207,
"Match": 53,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 208,
"Match": 54
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 209,
"Match": 55,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 210,
"Match": 56,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 211,
"Match": 57,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 212,
"Match": 58,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 213,
"Match": 59,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 214,
"Match": 60,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 215,
"Match": 61,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 216,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 217,
"Match": 63,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 218
},
{
"LeftIdx": 0,
"RightIdx": 219,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 220,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null
},
{
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 221
},
{
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 222
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 223,
"Match": 69
},
{
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590/coverage-7.13.4-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601\", size = 219522, upload-time = \"2026-02-09T12:58:08.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 224
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 225,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60/coverage-7.13.4-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689\", size = 219855, upload-time = \"2026-02-09T12:58:10.176Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70/coverage-7.13.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c\", size = 250887, upload-time = \"2026-02-09T12:58:12.503Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 226,
"Match": 72,
"Type": 2
},
{
"RightIdx": 227,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab/coverage-7.13.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129\", size = 253396, upload-time = \"2026-02-09T12:58:14.615Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 228,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537/coverage-7.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552\", size = 254745, upload-time = \"2026-02-09T12:58:16.162Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 229,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff/coverage-7.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a\", size = 257055, upload-time = \"2026-02-09T12:58:17.892Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 230,
"Match": 76,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356\", size = 250911, upload-time = \"2026-02-09T12:58:19.495Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 231,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71\", size = 252754, upload-time = \"2026-02-09T12:58:21.064Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5\", size = 250720, upload-time = \"2026-02-09T12:58:22.622Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98\", size = 254994, upload-time = \"2026-02-09T12:58:24.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 233
},
{
"RightIdx": 234,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5\", size = 250531, upload-time = \"2026-02-09T12:58:26.271Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 235,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0\", size = 252189, upload-time = \"2026-02-09T12:58:27.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 236,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl\", hash = \"sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb\", size = 222258, upload-time = \"2026-02-09T12:58:29.441Z\" },"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505\", size = 223073, upload-time = \"2026-02-09T12:58:31.026Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 237
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 238,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2\", size = 221638, upload-time = \"2026-02-09T12:58:32.599Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl\", hash = \"sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056\", size = 220246, upload-time = \"2026-02-09T12:58:34.181Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 239,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc\", size = 220514, upload-time = \"2026-02-09T12:58:35.704Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 240
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 241,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9\", size = 261877, upload-time = \"2026-02-09T12:58:37.864Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 242,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf\", size = 264004, upload-time = \"2026-02-09T12:58:39.492Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 243,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55\", size = 266408, upload-time = \"2026-02-09T12:58:41.852Z\" },",
"Comments": null
},
{
"RightIdx": 244,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72\", size = 267544, upload-time = \"2026-02-09T12:58:44.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 245,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a\", size = 260980, upload-time = \"2026-02-09T12:58:45.721Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 246,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6\", size = 263871, upload-time = \"2026-02-09T12:58:47.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 247,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3\", size = 261472, upload-time = \"2026-02-09T12:58:48.995Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 248,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750\", size = 265210, upload-time = \"2026-02-09T12:58:51.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl\", hash = \"sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39\", size = 260319, upload-time = \"2026-02-09T12:58:53.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 249
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0\", size = 262638, upload-time = \"2026-02-09T12:58:55.258Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl\", hash = \"sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea\", size = 223040, upload-time = \"2026-02-09T12:58:56.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 251
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl\", hash = \"sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932\", size = 224148, upload-time = \"2026-02-09T12:58:58.645Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 252,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl\", hash = \"sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b\", size = 222172, upload-time = \"2026-02-09T12:59:00.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 253
},
{
"RightIdx": 254,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 206,
"RightIdx": 255,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 256,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 208,
"RightIdx": 257,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 258,
"Match": 0,
"Type": 1,
"Content": " name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 209
},
{
"Match": 173,
"Type": 3,
"Content": "-version = \"0.4.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 259,
"Match": 172
},
{
"LeftIdx": 211,
"RightIdx": 260,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 212,
"RightIdx": 0,
"Match": 176,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz\", hash = \"sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0\", size = 186976, upload-time = \"2025-04-16T00:41:48.867Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 175,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 261
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 262,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 214,
"RightIdx": 0,
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl\", hash = \"sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049\", size = 119668, upload-time = \"2025-04-16T00:41:47.671Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 216
},
{
"LeftIdx": 217,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 218,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"exceptiongroup\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"1.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 221,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { name = \"typing-extensions\", marker = \"python_full_version < '3.13'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 223,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz\", hash = \"sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88\", size = 29749, upload-time = \"2025-05-10T17:42:51.123Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl\", hash = \"sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10\", size = 16674, upload-time = \"2025-05-10T17:42:49.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 263,
"Match": 178,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },"
},
{
"RightIdx": 264,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227
},
{
"LeftIdx": 228,
"RightIdx": 265,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 266,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"Content": " name = \"idna\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 267,
"Match": 0,
"Type": 1
},
{
"Match": 197,
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+version = \"3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 268,
"Match": 196
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 269,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490, upload-time = \"2024-09-15T18:07:39.745Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": 200
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 270,
"Match": 199
},
{
"RightIdx": 271,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 234
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442, upload-time = \"2024-09-15T18:07:37.964Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 235,
"RightIdx": 0,
"Match": 203
},
{
"LeftIdx": 0,
"RightIdx": 272,
"Match": 202,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 236,
"RightIdx": 273,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 237,
"RightIdx": 274,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238,
"RightIdx": 275,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 239,
"RightIdx": 276,
"Match": 0,
"Type": 1,
"Content": " name = \"iniconfig\"",
"Comments": null
},
{
"LeftIdx": 240,
"RightIdx": 0,
"Match": 209,
"Type": 3,
"Content": "-version = \"2.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 277,
"Match": 208,
"Type": 2,
"Content": "+version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241,
"RightIdx": 278
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz\", hash = \"sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7\", size = 4793, upload-time = \"2025-03-19T20:09:59.721Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242,
"RightIdx": 0,
"Match": 212
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 279,
"Match": 211,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 280,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl\", hash = \"sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760\", size = 6050, upload-time = \"2025-03-19T20:10:01.071Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 0,
"Match": 215,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 281,
"Match": 214,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 245,
"RightIdx": 282,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246,
"RightIdx": 283,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"LeftIdx": 247,
"RightIdx": 284,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -249,31 +286,8 @@ name = \"ipilot\"",
"Comments": null,
"SectionInfo": {
"LeftIdx": 249,
"RightIdx": 286,
"LeftHunkSize": 31,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 247,
"LastRightIdx": 284
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249,
"RightIdx": 286,
"Match": 0,
"Type": 1,
"Content": " version = \"0.0.0\"",
"Comments": null
},
{
"Type": 1,
"Content": " source = { editable = \".\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 250,
"RightIdx": 287,
"Match": 0
},
{
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251,
"RightIdx": 288,
"Match": 0
},
{
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"astroid\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"attrs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253
},
{
"Content": "- { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 255,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"charset-normalizer\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"click\" },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"dill\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"exceptiongroup\" },",
"Comments": null
},
{
"LeftIdx": 259,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"iniconfig\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"lazy-object-proxy\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mccabe\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\" },"
},
{
"LeftIdx": 267,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"py\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pyparsing\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270,
"RightIdx": 289,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null
},
{
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"six\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"tabulate\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 290
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273,
"RightIdx": 0
},
{
"LeftIdx": 274,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 275,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"urllib3\" },",
"Comments": null
},
{
"Content": "- { name = \"wrapt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 291,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 292,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " [package.dev-dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279,
"RightIdx": 293,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -288,67 +302,27 @@ dev = [",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 293,
"LeftIdx": 288,
"RightIdx": 302,
"LeftHunkSize": 67,
"RightHunkSize": 27,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 279
},
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288,
"RightIdx": 302
},
{
"LeftIdx": 289,
"RightIdx": 303,
"Match": 0,
"Type": 1,
"Content": " [package.metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 290,
"RightIdx": 304,
"Match": 0,
"Type": 1,
"Content": " requires-dist = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"==3.3.11\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { name = \"attrs\", specifier = \"==25.3.0\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"certifi\", specifier = \"==2025.7.14\" },",
"Comments": null
},
{
"LeftIdx": 294,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"charset-normalizer\", specifier = \"==3.4.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"click\", specifier = \"==8.2.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"dill\", specifier = \"==0.4.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 296,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { name = \"exceptiongroup\", specifier = \"==1.3.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"idna\", specifier = \"==3.10\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298
},
{
"LeftIdx": 299,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"iniconfig\", specifier = \"==2.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"lazy-object-proxy\", specifier = \"==1.11.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0
},
{
"LeftIdx": 301,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mccabe\", specifier = \"==0.7.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\", specifier = \"==1.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302
},
{
"Content": "- { name = \"packaging\", specifier = \"==25.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\", specifier = \"==0.12.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 304,
"RightIdx": 0
},
{
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\", specifier = \"==4.3.8\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { name = \"pluggy\", specifier = \"==1.6.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { name = \"py\", specifier = \"==1.11.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { name = \"pyparsing\", specifier = \"==3.2.3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 309,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"requests\", specifier = \"==2.32.4\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"six\", specifier = \"==1.17.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 310
},
{
"LeftIdx": 311,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tabulate\", specifier = \"==0.9.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 312,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\", specifier = \"==2.2.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 313,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\", specifier = \"==0.13.3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"urllib3\", specifier = \"==2.5.0\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"wrapt\", specifier = \"==1.17.2\" },",
"Comments": null
},
{
"Content": "+ { name = \"requests\", specifier = \"==2.32.5\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 305,
"Match": 4,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 306,
"Match": 5,
"Type": 2,
"Content": "+ { name = \"tabulate\", specifier = \"==0.10.0\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 316,
"RightIdx": 307
},
{
"RightIdx": 308,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317
},
{
"RightIdx": 309,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318
},
{
"Content": " dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 310,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 320,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 311,
"Match": 35,
"Type": 2,
"Content": "+ { name = \"black\", specifier = \">=26.3.0,<26.3.1\" },",
"Comments": null
},
{
"LeftIdx": 321,
"RightIdx": 312,
"Match": 0,
"Type": 1,
"Content": " { name = \"coverage\", specifier = \">=7.5.0,<8.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 0,
"Match": 39,
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.1.0,<4.0.0\" },"
},
{
"LeftIdx": 0,
"RightIdx": 313,
"Match": 38,
"Type": 2,
"Content": "+ { name = \"pylint\", specifier = \">=4.0.4,<4.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 323,
"RightIdx": 314,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 324,
"RightIdx": 0,
"Match": 42,
"Type": 3,
"Content": "- { name = \"pytest\", specifier = \">=8.1.1,<9.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 315,
"Match": 41,
"Type": 2
},
{
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests-mock\", specifier = \">=1.12.1,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 325
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 326,
"RightIdx": 317
},
{
"RightIdx": 318,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328,
"RightIdx": 319,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"isort\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 320
},
{
"Content": "-version = \"6.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 330,
"RightIdx": 0,
"Match": 49,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 321,
"Match": 48,
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0,
"Match": 52,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955, upload-time = \"2025-02-26T21:13:16.955Z\" }"
},
{
"RightIdx": 323,
"Match": 51,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 324,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186, upload-time = \"2025-02-26T21:13:14.911Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 334
},
{
"LeftIdx": 335,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 336,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"lazy-object-proxy\""
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.11.0\"",
"Comments": null
},
{
"LeftIdx": 340,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/57/f9/1f56571ed82fb324f293661690635cf42c41deb8a70a6c9e6edc3e9bb3c8/lazy_object_proxy-1.11.0.tar.gz\", hash = \"sha256:18874411864c9fbbbaa47f9fc1dd7aea754c86cfde21278ef427639d1dd78e9c\", size = 44736, upload-time = \"2025-04-16T16:53:48.482Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 342,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 343,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/f6/eb645ca1ff7408bb69e9b1fe692cce1d74394efdbb40d6207096c0cd8381/lazy_object_proxy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:090935756cc041e191f22f4f9c7fd4fe9a454717067adf5b1bbd2ce3046b556e\", size = 28047, upload-time = \"2025-04-16T16:53:34.679Z\" },"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/9c/aabbe1e8b99b8b0edb846b49a517edd636355ac97364419d9ba05b8fa19f/lazy_object_proxy-1.11.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:76ec715017f06410f57df442c1a8d66e6b5f7035077785b129817f5ae58810a4\", size = 28440, upload-time = \"2025-04-16T16:53:36.113Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4d/24/dae4759469e9cd318fef145f7cfac7318261b47b23a4701aa477b0c3b42c/lazy_object_proxy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:9a9f39098e93a63618a79eef2889ae3cf0605f676cd4797fdfd49fcd7ddc318b\", size = 28142, upload-time = \"2025-04-16T16:53:37.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 345,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/0c/645a881f5f27952a02f24584d96f9f326748be06ded2cee25f8f8d1cd196/lazy_object_proxy-1.11.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ee13f67f4fcd044ef27bfccb1c93d39c100046fec1fad6e9a1fcdfd17492aeb3\", size = 28380, upload-time = \"2025-04-16T16:53:39.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0f/6e004f928f7ff5abae2b8e1f68835a3870252f886e006267702e1efc5c7b/lazy_object_proxy-1.11.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:fd4c84eafd8dd15ea16f7d580758bc5c2ce1f752faec877bb2b1f9f827c329cd\", size = 28149, upload-time = \"2025-04-16T16:53:40.135Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 348,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/63/cb/b8363110e32cc1fd82dc91296315f775d37a39df1c1cfa976ec1803dac89/lazy_object_proxy-1.11.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:d2503427bda552d3aefcac92f81d9e7ca631e680a2268cbe62cd6a58de6409b7\", size = 28389, upload-time = \"2025-04-16T16:53:43.612Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 349,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/89/68c50fcfd81e11480cd8ee7f654c9bd790a9053b9a0efe9983d46106f6a9/lazy_object_proxy-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0613116156801ab3fccb9e2b05ed83b08ea08c2517fdc6c6bc0d4697a1a376e3\", size = 28777, upload-time = \"2025-04-16T16:53:41.371Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/d0/7e967689e24de8ea6368ec33295f9abc94b9f3f0cd4571bfe148dc432190/lazy_object_proxy-1.11.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:bb03c507d96b65f617a6337dedd604399d35face2cdf01526b913fb50c4cb6e8\", size = 29598, upload-time = \"2025-04-16T16:53:42.513Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/1e/fb441c07b6662ec1fc92b249225ba6e6e5221b05623cb0131d082f782edc/lazy_object_proxy-1.11.0-py3-none-any.whl\", hash = \"sha256:a56a5093d433341ff7da0e89f9b486031ccd222ec8e52ec84d0ec1cdc819674b\", size = 16635, upload-time = \"2025-04-16T16:53:47.198Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 351
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 325,
"Match": 54,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 352,
"RightIdx": 326,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"RightIdx": 327,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 354,
"RightIdx": 328
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -371,29 +345,29 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 354,
"LastRightIdx": 328,
"LeftIdx": 371,
"RightIdx": 345,
"LeftHunkSize": 29
}
},
{
"RightIdx": 345,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 372,
"RightIdx": 346,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 373,
"RightIdx": 347,
"Match": 0
},
{
"LeftIdx": 374,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"25.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"26.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 348,
"Match": 4
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 375,
"RightIdx": 349,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz\", hash = \"sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f\", size = 165727, upload-time = \"2025-04-19T11:48:59.673Z\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 350,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 351
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl\", hash = \"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484\", size = 66469, upload-time = \"2025-04-19T11:48:57.875Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 352,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 379,
"RightIdx": 353,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 380,
"RightIdx": 354,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 381,
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382,
"RightIdx": 356
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": 17,
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 357,
"Match": 16,
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 384,
"RightIdx": 358,
"Match": 0,
"Type": 1
},
{
"Match": 20,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043, upload-time = \"2023-12-10T22:30:45Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385,
"RightIdx": 0
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 359,
"Match": 19
},
{
"LeftIdx": 386,
"RightIdx": 360,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191, upload-time = \"2023-12-10T22:30:43.14Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 361,
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 362
},
{
"RightIdx": 363,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 389
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 390,
"RightIdx": 364,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391,
"RightIdx": 365
},
{
"Type": 3,
"Content": "-version = \"4.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": 29
},
{
"LeftIdx": 0,
"RightIdx": 366,
"Match": 28,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 367,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz\", hash = \"sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc\", size = 21362, upload-time = \"2025-05-07T22:47:42.121Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": 32
},
{
"LeftIdx": 0,
"RightIdx": 368,
"Match": 31,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 395,
"RightIdx": 369,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl\", hash = \"sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4\", size = 18567, upload-time = \"2025-05-07T22:47:40.376Z\" },"
},
{
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 370
},
{
"LeftIdx": 397,
"RightIdx": 371,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398,
"RightIdx": 372,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 399,
"RightIdx": 373
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -405,15 +379,6 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 399,
"LastRightIdx": 373,
"LeftIdx": 405,
"RightIdx": 379,
"LeftHunkSize": 15,
"RightHunkSize": 6,
"HiddenCommentIDs": null
},
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 405,
"RightIdx": 379,
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 406,
"RightIdx": 380
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 381,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408
},
{
"Type": 3,
"Content": "-name = \"py\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"1.11.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 410,
"RightIdx": 0
},
{
"LeftIdx": 411,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz\", hash = \"sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719\", size = 207796, upload-time = \"2021-11-04T17:17:01.377Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl\", hash = \"sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378\", size = 98708, upload-time = \"2021-11-04T17:17:00.152Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414
},
{
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 416
},
{
"LeftIdx": 417,
"RightIdx": 382,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 418,
"RightIdx": 383,
"Match": 0,
"Type": 1,
"Content": " name = \"pygments\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 419,
"RightIdx": 384,
"Match": 0,
"Type": 1,
"Content": " version = \"2.19.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -425,7 +390,7 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 419,
"LastRightIdx": 384,
"LeftIdx": 425,
"RightIdx": 390,
"LeftHunkSize": 7,
"RightHunkSize": 7
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 425,
"RightIdx": 390,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426,
"RightIdx": 391
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"pylint\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 392
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"3.3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 428
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 393,
"Match": 4,
"Type": 2,
"Content": "+version = \"4.0.5\""
},
{
"LeftIdx": 429,
"RightIdx": 394,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 395,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 430
},
{
"Content": " { name = \"astroid\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 431,
"RightIdx": 396,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -436,9 +401,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"RightIdx": 401,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 431,
"LastRightIdx": 396,
"LeftIdx": 436
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 401,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437,
"RightIdx": 402,
"Match": 0,
"Type": 1,
"Content": " { name = \"tomlkit\" },",
"Comments": null
},
{
"LeftIdx": 438,
"RightIdx": 403,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 439,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3/pylint-3.3.7.tar.gz\", hash = \"sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559\", size = 1520709, upload-time = \"2025-05-04T17:07:51.089Z\" }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 404,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 440,
"RightIdx": 405,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e8/83/bff755d09e31b5d25cc7fdc4bf3915d1a404e181f1abf0359af376845c24/pylint-3.3.7-py3-none-any.whl\", hash = \"sha256:43860aafefce92fca4cf6b61fe199cdc5ae54ea28f9bf4cd49de267b5195803d\", size = 522565, upload-time = \"2025-05-04T17:07:48.714Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 406,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442,
"RightIdx": 407,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 408,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444,
"RightIdx": 409
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -450,18 +415,9 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LeftIdx": 450,
"RightIdx": 415,
"LeftHunkSize": 18,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 444,
"LastRightIdx": 409
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 450,
"RightIdx": 415,
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 416,
"Match": 0,
"Type": 1
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 417,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyparsing\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 455,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.2.3\""
},
{
"LeftIdx": 456,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz\", hash = \"sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be\", size = 1088608, upload-time = \"2025-03-25T05:01:28.114Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457
},
{
"LeftIdx": 458,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl\", hash = \"sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf\", size = 111120, upload-time = \"2025-03-25T05:01:24.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 459,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 462,
"RightIdx": 418,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 463,
"RightIdx": 419,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-version = \"8.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 0,
"Match": 16
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 420,
"Match": 15,
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null
},
{
"LeftIdx": 465,
"RightIdx": 421,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466,
"RightIdx": 422,
"Match": 0,
"Type": 1,
"Content": " dependencies = ["
},
{
"LeftIdx": 467,
"RightIdx": 423,
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -470,14 +426,48 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 467,
"LastRightIdx": 423,
"LeftIdx": 470,
"RightIdx": 426,
"LeftHunkSize": 14,
"RightHunkSize": 48
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 470,
"RightIdx": 426,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 471,
"RightIdx": 427,
"Match": 0,
"Type": 1,
"Content": " { name = \"pygments\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 472,
"RightIdx": 428,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz\", hash = \"sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c\", size = 1517714, upload-time = \"2025-06-18T05:48:06.109Z\" }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 429,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 474,
"RightIdx": 430
},
{
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl\", hash = \"sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7\", size = 365474, upload-time = \"2025-06-18T05:48:03.955Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475
},
{
"RightIdx": 431,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1,
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 433
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 434,
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null
},
{
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 436,
"Match": -1,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 437,
"Match": -1,
"Type": 2,
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438,
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }"
},
{
"Type": 2,
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440\", size = 160864, upload-time = \"2026-01-30T01:02:57.882Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc\", size = 248565, upload-time = \"2026-01-30T01:02:59.912Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 441,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d\", size = 260824, upload-time = \"2026-01-30T01:03:01.471Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 442,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 443,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16\", size = 264075, upload-time = \"2026-01-30T01:03:04.143Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6\", size = 103323, upload-time = \"2026-01-30T01:03:05.412Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083\", size = 160663, upload-time = \"2026-01-30T01:03:06.473Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445
},
{
"RightIdx": 446,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1\", size = 255626, upload-time = \"2026-01-30T01:03:08.177Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 447,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1\", size = 269779, upload-time = \"2026-01-30T01:03:09.756Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9\", size = 268076, upload-time = \"2026-01-30T01:03:10.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 448,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68\", size = 103552, upload-time = \"2026-01-30T01:03:12.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 449,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 450,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 451,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },"
},
{
"RightIdx": 452,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 453,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 454,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321\", size = 160821, upload-time = \"2026-01-30T01:03:19.684Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 455,
"Match": -1
},
{
"RightIdx": 456,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa\", size = 254263, upload-time = \"2026-01-30T01:03:20.834Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d\", size = 268071, upload-time = \"2026-01-30T01:03:21.888Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 457,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 458,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324\", size = 271716, upload-time = \"2026-01-30T01:03:23.633Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9\", size = 104539, upload-time = \"2026-01-30T01:03:24.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 459
},
{
"LeftIdx": 0,
"RightIdx": 460,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb\", size = 168474, upload-time = \"2026-01-30T01:03:26.428Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 461,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3\", size = 290473, upload-time = \"2026-01-30T01:03:27.415Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 462,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975\", size = 303485, upload-time = \"2026-01-30T01:03:28.558Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 463,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a\", size = 306698, upload-time = \"2026-01-30T01:03:29.653Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918\", size = 116287, upload-time = \"2026-01-30T01:03:30.912Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 464
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 465,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476,
"RightIdx": 466
},
{
"LeftIdx": 477,
"RightIdx": 467,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 468
},
{
"RightIdx": 469,
"Match": 0,
"Type": 1,
"Content": " name = \"requests\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 480,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-version = \"2.32.4\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 470,
"Match": 47,
"Type": 2,
"Content": "+version = \"2.32.5\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481,
"RightIdx": 471,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 472,
"Match": 0
},
{
"RightIdx": 473,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 483
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -485,9 +475,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 483,
"LastRightIdx": 473,
"LeftIdx": 485,
"RightIdx": 475,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 485,
"RightIdx": 475,
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486,
"RightIdx": 476,
"Match": 0,
"Type": 1
},
{
"RightIdx": 477,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz\", hash = \"sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422\", size = 135258, upload-time = \"2025-06-09T16:43:07.34Z\" }",
"Comments": null
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 478,
"Match": 4
},
{
"RightIdx": 479,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl\", hash = \"sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c\", size = 64847, upload-time = \"2025-06-09T16:43:05.728Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490,
"RightIdx": 0,
"Match": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 480,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },"
},
{
"LeftIdx": 491,
"RightIdx": 481,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 492,
"RightIdx": 482
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493,
"RightIdx": 483
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -502,139 +492,29 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 139,
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 493,
"LastRightIdx": 483,
"LeftIdx": 502,
"RightIdx": 492
}
},
{
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/97/ec/889fbc557727da0c34a33850950310240f2040f3b1955175fdb2b36a8910/requests_mock-1.12.1-py2.py3-none-any.whl\", hash = \"sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563\", size = 27695, upload-time = \"2024-03-29T03:54:27.64Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 492,
"Match": 0
},
{
"LeftIdx": 503,
"RightIdx": 493,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 494,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0
},
{
"Content": "-name = \"six\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.17.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507
},
{
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz\", hash = \"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81\", size = 34031, upload-time = \"2024-12-04T17:35:28.174Z\" }"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = ["
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl\", hash = \"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274\", size = 11050, upload-time = \"2024-12-04T17:35:26.475Z\" },",
"Comments": null
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 495,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 515,
"RightIdx": 496,
"Match": 0,
"Type": 1,
"Content": " name = \"tabulate\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 516,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "-version = \"0.9.0\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 497,
"Match": 15,
"Type": 2,
"Content": "+version = \"0.10.0\""
},
{
"LeftIdx": 517,
"RightIdx": 498,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 19,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz\", hash = \"sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c\", size = 81090, upload-time = \"2022-10-06T17:21:48.54Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 0
},
{
"Match": 18,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/46/58/8c37dea7bbf769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6/tabulate-0.10.0.tar.gz\", hash = \"sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d\", size = 91754, upload-time = \"2026-03-04T18:55:34.402Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 499
},
{
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519
},
{
"LeftIdx": 520,
"RightIdx": 0,
"Match": 61,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl\", hash = \"sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f\", size = 35252, upload-time = \"2022-10-06T17:21:44.262Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 521,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-"
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"tomli\"",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"2.2.1\""
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 526,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }"
},
{
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz\", hash = \"sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff\", size = 17175, upload-time = \"2024-11-27T22:38:36.873Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527,
"RightIdx": 0
},
{
"LeftIdx": 528,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249\", size = 131077, upload-time = \"2024-11-27T22:37:54.956Z\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6\", size = 123429, upload-time = \"2024-11-27T22:37:56.698Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a\", size = 226067, upload-time = \"2024-11-27T22:37:57.63Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee\", size = 236030, upload-time = \"2024-11-27T22:37:59.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e\", size = 240898, upload-time = \"2024-11-27T22:38:00.429Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4\", size = 229894, upload-time = \"2024-11-27T22:38:02.094Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106\", size = 245319, upload-time = \"2024-11-27T22:38:03.206Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8\", size = 238273, upload-time = \"2024-11-27T22:38:04.217Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl\", hash = \"sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff\", size = 98310, upload-time = \"2024-11-27T22:38:05.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 537,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b\", size = 108309, upload-time = \"2024-11-27T22:38:06.812Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea\", size = 132762, upload-time = \"2024-11-27T22:38:07.731Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8\", size = 123453, upload-time = \"2024-11-27T22:38:09.384Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 541,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192\", size = 233486, upload-time = \"2024-11-27T22:38:10.329Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222\", size = 242349, upload-time = \"2024-11-27T22:38:11.443Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77\", size = 252159, upload-time = \"2024-11-27T22:38:13.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6\", size = 237243, upload-time = \"2024-11-27T22:38:14.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 544,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd\", size = 259645, upload-time = \"2024-11-27T22:38:15.843Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e\", size = 244584, upload-time = \"2024-11-27T22:38:17.645Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl\", hash = \"sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98\", size = 98875, upload-time = \"2024-11-27T22:38:19.159Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4\", size = 109418, upload-time = \"2024-11-27T22:38:20.064Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 548
},
{
"LeftIdx": 549,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7\", size = 132708, upload-time = \"2024-11-27T22:38:21.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 550,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c\", size = 123582, upload-time = \"2024-11-27T22:38:22.693Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 551,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13\", size = 232543, upload-time = \"2024-11-27T22:38:24.367Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281\", size = 241691, upload-time = \"2024-11-27T22:38:26.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0
},
{
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272\", size = 251170, upload-time = \"2024-11-27T22:38:27.921Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140\", size = 236530, upload-time = \"2024-11-27T22:38:29.591Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2\", size = 258666, upload-time = \"2024-11-27T22:38:30.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744\", size = 243954, upload-time = \"2024-11-27T22:38:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 0
},
{
"LeftIdx": 557,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl\", hash = \"sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec\", size = 98724, upload-time = \"2024-11-27T22:38:32.837Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69\", size = 109383, upload-time = \"2024-11-27T22:38:34.455Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 558,
"RightIdx": 0
},
{
"LeftIdx": 559,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl\", hash = \"sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc\", size = 14257, upload-time = \"2024-11-27T22:38:35.385Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 501,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl\", hash = \"sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3\", size = 39814, upload-time = \"2026-03-04T18:55:31.284Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 560,
"RightIdx": 502
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 503,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 562,
"RightIdx": 504,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"RightIdx": 505,
"Match": 0,
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 564,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "-version = \"0.13.3\"",
"Comments": null
},
{
"Match": 66,
"Type": 2,
"Content": "+version = \"0.14.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 506
},
{
"RightIdx": 507,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 565
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 566,
"RightIdx": 0,
"Match": 70,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz\", hash = \"sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1\", size = 185207, upload-time = \"2025-06-05T07:13:44.947Z\" }",
"Comments": null
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 508,
"Match": 69
},
{
"LeftIdx": 567,
"RightIdx": 509,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl\", hash = \"sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0\", size = 38901, upload-time = \"2025-06-05T07:13:43.546Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569
},
{
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"typing-extensions\"",
"Comments": null
},
{
"Content": "-version = \"4.14.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 573,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz\", hash = \"sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36\", size = 107673, upload-time = \"2025-07-04T13:28:34.16Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575
},
{
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl\", hash = \"sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76\", size = 43906, upload-time = \"2025-07-04T13:28:32.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577
},
{
"LeftIdx": 0,
"RightIdx": 510,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 578,
"RightIdx": 511
},
{
"LeftIdx": 579,
"RightIdx": 512,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 580,
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 514,
"Match": 0,
"Type": 1,
"Content": " name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 581
},
{
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "-version = \"2.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582
},
{
"Content": "+version = \"2.6.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 515,
"Match": 87,
"Type": 2
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 516
},
{
"LeftIdx": 584,
"RightIdx": 0,
"Match": 91,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz\", hash = \"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760\", size = 393185, upload-time = \"2025-06-18T14:07:41.644Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 517,
"Match": 90,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 585,
"RightIdx": 518,
"Match": 0,
"Type": 1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl\", hash = \"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc\", size = 129795, upload-time = \"2025-06-18T14:07:40.39Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586,
"RightIdx": 0,
"Match": 147,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null
},
{
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 589,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"wrapt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 590,
"RightIdx": 0
},
{
"LeftIdx": 591,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.17.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 593,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz\", hash = \"sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3\", size = 55531, upload-time = \"2025-01-14T10:35:45.465Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 594
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58\", size = 53308, upload-time = \"2025-01-14T10:33:33.992Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 595,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/ff/149aba8365fdacef52b31a258c4dc1c57c79759c335eff0b3316a2664a64/wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda\", size = 38488, upload-time = \"2025-01-14T10:33:35.264Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 596
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 597,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438\", size = 38776, upload-time = \"2025-01-14T10:33:38.28Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 598,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ca/74/336c918d2915a4943501c77566db41d1bd6e9f4dbc317f356b9a244dfe83/wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a\", size = 83776, upload-time = \"2025-01-14T10:33:40.678Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/99/c0c844a5ccde0fe5761d4305485297f91d67cf2a1a824c5f282e661ec7ff/wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000\", size = 75420, upload-time = \"2025-01-14T10:33:41.868Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 599,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/b0/9fc566b0fe08b282c850063591a756057c3247b2362b9286429ec5bf1721/wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6\", size = 83199, upload-time = \"2025-01-14T10:33:43.598Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9d/4b/71996e62d543b0a0bd95dda485219856def3347e3e9380cc0d6cf10cfb2f/wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b\", size = 82307, upload-time = \"2025-01-14T10:33:48.499Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 601
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/35/0282c0d8789c0dc9bcc738911776c762a701f95cfe113fb8f0b40e45c2b9/wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662\", size = 75025, upload-time = \"2025-01-14T10:33:51.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/6d/90c9fd2c3c6fee181feecb620d95105370198b6b98a0770cba090441a828/wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72\", size = 81879, upload-time = \"2025-01-14T10:33:52.328Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/fa/9fb6e594f2ce03ef03eddbdb5f4f90acb1452221a5351116c7c4708ac865/wrapt-1.17.2-cp311-cp311-win32.whl\", hash = \"sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317\", size = 36419, upload-time = \"2025-01-14T10:33:53.551Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 604,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/f8/fb1773491a253cbc123c5d5dc15c86041f746ed30416535f2a8df1f4a392/wrapt-1.17.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3\", size = 38773, upload-time = \"2025-01-14T10:33:56.323Z\" },",
"Comments": null
},
{
"LeftIdx": 606,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925\", size = 53799, upload-time = \"2025-01-14T10:33:57.4Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392\", size = 38821, upload-time = \"2025-01-14T10:33:59.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0
},
{
"LeftIdx": 608,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40\", size = 38919, upload-time = \"2025-01-14T10:34:04.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d\", size = 88721, upload-time = \"2025-01-14T10:34:07.163Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 610,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b\", size = 80899, upload-time = \"2025-01-14T10:34:09.82Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 611,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98\", size = 89222, upload-time = \"2025-01-14T10:34:11.258Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82\", size = 86707, upload-time = \"2025-01-14T10:34:12.49Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae\", size = 79685, upload-time = \"2025-01-14T10:34:15.043Z\" },"
},
{
"LeftIdx": 614,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9\", size = 87567, upload-time = \"2025-01-14T10:34:16.563Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl\", hash = \"sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9\", size = 36672, upload-time = \"2025-01-14T10:34:17.727Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991\", size = 38865, upload-time = \"2025-01-14T10:34:19.577Z\" },"
},
{
"LeftIdx": 617,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125\", size = 53800, upload-time = \"2025-01-14T10:34:21.571Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998\", size = 38824, upload-time = \"2025-01-14T10:34:22.999Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5\", size = 38920, upload-time = \"2025-01-14T10:34:25.386Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8\", size = 88690, upload-time = \"2025-01-14T10:34:28.058Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6\", size = 80861, upload-time = \"2025-01-14T10:34:29.167Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc\", size = 89174, upload-time = \"2025-01-14T10:34:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2\", size = 86721, upload-time = \"2025-01-14T10:34:32.91Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b\", size = 79763, upload-time = \"2025-01-14T10:34:34.903Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504\", size = 87585, upload-time = \"2025-01-14T10:34:36.13Z\" },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl\", hash = \"sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a\", size = 36676, upload-time = \"2025-01-14T10:34:37.962Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 626
},
{
"LeftIdx": 627,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845\", size = 38871, upload-time = \"2025-01-14T10:34:39.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl\", hash = \"sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192\", size = 56312, upload-time = \"2025-01-14T10:34:40.604Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b\", size = 40062, upload-time = \"2025-01-14T10:34:45.011Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629
},
{
"LeftIdx": 630,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0\", size = 40155, upload-time = \"2025-01-14T10:34:47.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 631,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306\", size = 113471, upload-time = \"2025-01-14T10:34:50.934Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb\", size = 101208, upload-time = \"2025-01-14T10:34:52.297Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681\", size = 109339, upload-time = \"2025-01-14T10:34:53.489Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6\", size = 110232, upload-time = \"2025-01-14T10:34:55.327Z\" },",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6\", size = 100476, upload-time = \"2025-01-14T10:34:58.055Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f\", size = 106377, upload-time = \"2025-01-14T10:34:59.3Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 636,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 637,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl\", hash = \"sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555\", size = 37986, upload-time = \"2025-01-14T10:35:00.498Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl\", hash = \"sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c\", size = 40750, upload-time = \"2025-01-14T10:35:03.378Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl\", hash = \"sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8\", size = 23594, upload-time = \"2025-01-14T10:35:44.018Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 519,
"Match": 93,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 520,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 640,
"LastRightIdx": 520,
"LeftIdx": 641,
"RightIdx": 521,
"LeftHunkSize": 0
},
"LeftIdx": 0,
"RightIdx": 0
}
]
}
],
"IsViewed": false,
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"EntryMode": "",
"OldEntryMode": "",
"IsCreated": false,
"IsLFSFile": false,
"IsGenerated": true
}
],
"IsIncomplete": false,
"Start": ""
},
"ShowMilestonesDashboardPage": true,
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Lang": "pt-BR",
"Name": "Português do Brasil"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Lang": "el-GR",
"Name": "Ελληνικά"
},
{
"Lang": "bg-BG",
"Name": "Български"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Lang": "fa-IR",
"Name": "فارسی"
},
{
"Lang": "ml-IN",
"Name": "മലയാളം"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Lang": "zh-TW",
"Name": "繁體中文(台灣)"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"IsEmptyRepo": false,
"PullRequestCtx": {},
"CanWriteActions": false,
"ShowRegistrationButton": false,
"CloneButtonShowHTTPS": true,
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"CompareInfo": "[dumped]",
"BaseRepo": {
"ID": 25,
"LowerName": "pypilot",
"DefaultBranch": "main",
"DefaultWikiBranch": "main",
"NumClosedIssues": 1,
"NumPulls": 436,
"IsPrivate": false,
"IsEmpty": false,
"OwnerName": "repos",
"Name": "pypilot",
"OriginalServiceType": 2,
"NumStars": 0,
"NumClosedActionRuns": 984,
"PrimaryLanguage": "[*repo.LanguageStat]",
"ForkID": 0,
"IsTemplate": false,
"Website": "",
"NumClosedProjects": 0,
"LFSSize": 0,
"Topics": null,
"CreatedUnix": 1737063265,
"UpdatedUnix": 1776589233,
"NumForks": 0,
"NumOpenPulls": 0,
"NumMilestones": 0,
"NumOpenMilestones": 0,
"NumActionRuns": 984,
"IsFork": false,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"CloseIssuesViaCommitInAnyBranch": true,
"Description": "",
"NumClosedMilestones": 0,
"NumOpenActionRuns": 0,
"OwnerID": 13,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumIssues": 2,
"NumClosedPulls": 436,
"IsArchived": false,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"TrustModel": 0,
"Owner": {
"Location": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"Passwd": "",
"Website": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"NumMembers": 7,
"Visibility": 0,
"MustChangePassword": false,
"LoginSource": 0,
"Type": 1,
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 27,
"Theme": "tangerine-dream",
"ID": 13,
"LowerName": "repos",
"PasswdHashAlgo": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"IsActive": true,
"NumStars": 0,
"Email": "",
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"IsAdmin": false,
"UseCustomAvatar": true,
"NumTeams": 6,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"FullName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"Description": "",
"UpdatedUnix": 1776538024,
"Name": "repos",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "",
"LoginType": 0,
"LoginName": ""
},
"NumWatches": 5,
"NumOpenIssues": 1,
"NumOpenProjects": 0,
"BaseRepo": "[*repo.Repository]",
"TemplateID": 0,
"Size": 2465934,
"Avatar": "",
"NumProjects": 0,
"IsMirror": false,
"Status": 0,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"ID": 1853,
"RepoID": 25,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704
},
{
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"AllowRebaseMerge": false,
"AllowSquash": true,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash",
"AllowMerge": false,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"DefaultDeleteBranchAfterMerge": true,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowRebase": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
}
],
"GitSize": 2465934,
"IsFsckEnabled": true,
"ArchivedUnix": 0
},
"HeadBranch": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"title": "fix(deps): update dependency certifi to v2025.8.3 (#356)",
"CloneButtonShowSSH": false,
"PageStartTime": {},
"UploadRemoveUrl": "/repos/pypilot/issues/attachments/remove",
"IsProjectsEnabled": false,
"Commits": [
{
"Statuses": [
{
"ContextHash": "d7cc028fcbc1b9a3b7e7b420569d59c23f362ed4",
"Context": "Conventional Commit / Validate PR Title (pull_request)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/918/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1772827042,
"UpdatedUnix": 1772827042,
"ID": 90801,
"Index": 3,
"RepoID": 25,
"State": "success",
"Description": "Successful in 4s"
},
{
"Index": 4,
"Repo": "[*repo.Repository]",
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Context": "CI / ci (pull_request)",
"Creator": "[*user.User]",
"UpdatedUnix": 1772827063,
"RepoID": 25,
"State": "success",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Description": "Successful in 31s",
"CreatorID": -2,
"CreatedUnix": 1772827063,
"ID": 90804
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Type": 0,
"ID": 3,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"Description": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"NumStars": 1,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"AllowGitHook": false,
"NumRepos": 3,
"Visibility": 1,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Salt": "",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream"
},
"TrustStatus": "",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
]
},
"User": {
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"ID": 5,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"NumFollowers": 0,
"NumRepos": 0,
"NumMembers": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"NumStars": 0,
"NumTeams": 0,
"MustChangePassword": false,
"LoginType": 0,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Visibility": 0,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Location": ""
}
}
},
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Description": "",
"ContextHash": "",
"ID": 0,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"Type": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsAdmin": false,
"UseCustomAvatar": true,
"IsRestricted": false,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"FullName": "renovate[bot]",
"LoginName": "",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginSource": 0,
"NumFollowing": 0,
"Theme": "gitea-auto",
"LoginType": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"Visibility": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumRepos": 0,
"NumMembers": 0,
"DiffViewStyle": ""
},
"Commit": {
"Parents": [
[
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
207,
244,
90,
161,
133,
250,
223,
134,
6,
6,
110,
7,
71,
132,
82,
240,
9,
130,
62,
99
]
}
},
"ID": [
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/build-push-action action to v7 (#420)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/build-push-action](https://github.com/docker/build-push-action) | action | major | `v6` → `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/build-push-action (docker/build-push-action)</summary>\n\n### [`v7`](https://github.com/docker/build-push-action/compare/v6...v7)\n\n[Compare Source](https://github.com/docker/build-push-action/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/420\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
},
"Verification": {
"Warning": false,
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Type": 0,
"Salt": "",
"NumFollowers": 0,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"LowerName": "luke",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"EmailNotificationsPreference": "enabled",
"Location": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"NumStars": 1,
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Language": "en-US",
"IsAdmin": true,
"AllowGitHook": false,
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"Verified": false
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Language": "en-US",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumStars": 1,
"IsRestricted": false,
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Description": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"NumRepos": 3,
"NumMembers": 0,
"Name": "luke",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"LowerName": "luke",
"MaxRepoCreation": -1,
"IsActive": true,
"Visibility": 1,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": ""
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"NumStars": 0,
"Theme": "gitea-auto",
"Type": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsAdmin": false,
"NumRepos": 0,
"ID": 5,
"Name": "renovate-bot",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"LowerName": "renovate-bot",
"Location": "",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Language": "en-US",
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumFollowing": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowCreateOrganization": false,
"NumTeams": 0,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
203,
115,
71,
56,
137,
176,
180,
148,
171,
200,
154,
132,
74,
30,
231,
35,
104,
209,
110,
204
],
"ResolvedID": null
}
},
"ID": [
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency black to <26.3.1,>=26.3.0 (#421)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<26.1.1,>=26.1.0` → `<26.3.1,>=26.3.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.3.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2630)\n\n[Compare Source](https://github.com/psf/black/compare/26.1.0...26.3.0)\n\n##### Stable style\n\n- Don't double-decode input, causing non-UTF-8 files to be corrupted ([#​4964](https://github.com/psf/black/issues/4964))\n- Fix crash on standalone comment in lambda default arguments ([#​4993](https://github.com/psf/black/issues/4993))\n- Preserve parentheses when `# type: ignore` comments would be merged with other\n comments on the same line, preventing AST equivalence failures ([#​4888](https://github.com/psf/black/issues/4888))\n\n##### Preview style\n\n- Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had\n a trailing comma ([#​4884](https://github.com/psf/black/issues/4884))\n- Fix `string_processing` crashing on unassigned long string literals with trailing\n commas (one-item tuples) ([#​4929](https://github.com/psf/black/issues/4929))\n- Simplify implementation of the power operator \"hugging\" logic ([#​4918](https://github.com/psf/black/issues/4918))\n\n##### Packaging\n\n- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\n frozen environments ([#​4930](https://github.com/psf/black/issues/4930))\n\n##### Performance\n\n- Introduce winloop for windows as an alternative to uvloop ([#​4996](https://github.com/psf/black/issues/4996))\n- Remove deprecated function `uvloop.install()` in favor of `uvloop.new_event_loop()`\n ([#​4996](https://github.com/psf/black/issues/4996))\n- Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to simplify loop\n installation and creation of either a uvloop/winloop evenloop or default eventloop\n ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Output\n\n- Emit a clear warning when the target Python version is newer than the running Python\n version, since AST safety checks cannot parse newer syntax. Also replace the\n misleading \"INTERNAL ERROR\" message with an actionable error explaining the version\n mismatch ([#​4983](https://github.com/psf/black/issues/4983))\n\n##### *Blackd*\n\n- Introduce winloop to be used when windows in use which enables blackd to run faster on\n windows when winloop is installed. ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Integrations\n\n- Remove unused gallery script ([#​5030](https://github.com/psf/black/issues/5030))\n- Harden parsing of `black` requirements in the GitHub Action when `use_pyproject` is\n enabled so that only version specifiers are accepted and direct references such as\n `black @​ https://...` are rejected. Users should upgrade to the latest version of the\n action as soon as possible. This update is received automatically when using\n `psf/black@stable`, and is independent of the version of Black installed by the\n action. ([#​5031](https://github.com/psf/black/issues/5031))\n\n##### Documentation\n\n- Expand preview style documentation with detailed examples for `wrap_comprehension_in`,\n `simplify_power_operator_hugging`, and `wrap_long_dict_values_in_parens` features\n ([#​4987](https://github.com/psf/black/issues/4987))\n- Add detailed documentation for formatting Jupyter Notebooks ([#​5009](https://github.com/psf/black/issues/5009))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OC4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/421\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
]
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"Verified": false,
"CommittingUser": {
"IsRestricted": false,
"NumTeams": 0,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Description": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"LowerName": "luke",
"AllowGitHook": false,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"ID": 3,
"Salt": "",
"IsActive": true,
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"Location": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"IsActive": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"KeepEmailPrivate": true,
"LoginType": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowGitHook": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Type": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"ProhibitLogin": false,
"NumFollowing": 0,
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"IsAdmin": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Description": "",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"CommitMessage": "fix(deps): update dependency tabulate to v0.10.0 (#417)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [tabulate](https://github.com/astanin/python-tabulate) | `==0.9.0` → `==0.10.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astanin/python-tabulate (tabulate)</summary>\n\n### [`v0.10.0`](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n[Compare Source](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41My4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/417\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
145,
163,
141,
48,
242,
186,
111,
51,
48,
46,
4,
237,
16,
28,
1,
167,
255,
54,
4
],
"ResolvedID": null
}
},
"ID": [
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Passwd": "",
"IsActive": true,
"NumTeams": 0,
"NumMembers": 0,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Description": "",
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Language": "en-US",
"LastRepoVisibility": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"PasswdHashAlgo": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"UseCustomAvatar": true,
"Theme": "tangerine-dream"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Location": "",
"UseCustomAvatar": true,
"NumStars": 0,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsAdmin": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Type": 0,
"Description": "",
"AllowImportLocal": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"IsRestricted": false
},
"Commit": {
"Parents": [
[
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
]
],
"Tree": {
"TreeCommon": {
"ID": [
74,
59,
158,
167,
90,
222,
211,
85,
61,
150,
81,
122,
16,
127,
222,
102,
63,
2,
65,
207
],
"ResolvedID": null
}
},
"ID": [
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#415)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/415\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Type": 0,
"Salt": "",
"Language": "en-US",
"LastRepoVisibility": false,
"NumFollowers": 0,
"Name": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"Description": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Location": "",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowImportLocal": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumRepos": 3,
"Passwd": "",
"AllowCreateOrganization": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"IsAdmin": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowGitHook": false,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Language": "en-US",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Type": 0,
"Description": ""
},
"Commit": {
"Parents": [
[
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
]
],
"Tree": {
"TreeCommon": {
"ID": [
135,
87,
222,
200,
9,
213,
147,
0,
220,
23,
205,
184,
1,
126,
201,
187,
147,
173,
255,
0
],
"ResolvedID": null
}
},
"ID": [
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#416)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/416\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"State": "failure",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"Description": "",
"Context": ""
},
"Statuses": [
{
"RepoID": 25,
"State": "success",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"Description": "Successful in 28s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1772355680,
"UpdatedUnix": 1772355680,
"ID": 89643,
"Index": 6
},
{
"ID": 89659,
"RepoID": 25,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/1",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1772355728,
"Index": 7,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"UpdatedUnix": 1772355728
},
{
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 89664,
"State": "success",
"Description": "Successful in 1m42s",
"Creator": "[*user.User]",
"CreatedUnix": 1772355834,
"UpdatedUnix": 1772355834,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/2",
"Description": "Successful in 4s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"ID": 89665,
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1772355837,
"UpdatedUnix": 1772355837,
"Index": 9,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"Description": "Failing after 17s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"ID": 89667,
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1772355891,
"UpdatedUnix": 1772355891,
"Index": 10,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ID": 3,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LastLoginUnix": 1776964991,
"Language": "en-US",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"IsAdmin": true,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Location": "",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumRepos": 3,
"LoginSource": 2,
"Type": 0,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"Theme": "tangerine-dream"
},
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"MaxRepoCreation": -1,
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Language": "en-US",
"NumMembers": 0,
"Theme": "gitea-auto",
"Type": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"MustChangePassword": false,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"UseCustomAvatar": true,
"NumFollowing": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
213,
17,
80,
137,
164,
216,
216,
22,
208,
160,
124,
137,
35,
245,
52,
222,
11,
235,
12,
227
],
"ResolvedID": null
}
},
"ID": [
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#414)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/414\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"CreatedUnix": 1771750839,
"UpdatedUnix": 1771750839,
"ID": 88359,
"Index": 18,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/0",
"Description": "Successful in 9s",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"State": "success",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1771750881,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771750881,
"ID": 88381,
"Index": 19,
"RepoID": 25
},
{
"State": "success",
"Description": "Successful in 3s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25,
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1771750936,
"UpdatedUnix": 1771750936,
"ID": 88391,
"Index": 20,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Description": "Failing after 58s",
"CreatorID": -2,
"UpdatedUnix": 1771750943,
"Index": 21,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1771750943,
"ID": 88392
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 22,
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"CreatedUnix": 1771751052,
"UpdatedUnix": 1771751052,
"ID": 88398,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Failing after 14s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"Description": "",
"IsRestricted": false,
"NumFollowing": 1,
"LoginSource": 2,
"AllowGitHook": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"UseCustomAvatar": true,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"ID": 3,
"LowerName": "luke",
"Type": 0,
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Theme": "tangerine-dream",
"Passwd": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
]
],
"Tree": {
"TreeCommon": {
"ID": [
100,
137,
198,
88,
236,
219,
219,
213,
77,
37,
186,
107,
61,
134,
50,
125,
60,
240,
114,
1
],
"ResolvedID": null
}
},
"ID": [
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#413)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/413\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"Visibility": 0,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"LoginSource": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"Type": 0,
"IsAdmin": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Description": "",
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AllowImportLocal": false,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 0,
"ID": 5,
"Name": "renovate-bot",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"NumStars": 0
}
}
}
},
{
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1770541283,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/0",
"Description": "Successful in 20s",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1770541283,
"ID": 85308,
"State": "success"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/1",
"Description": "Successful in 7s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1770541351,
"UpdatedUnix": 1770541351,
"ID": 85334,
"Index": 17
},
{
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1770541435,
"ID": 85339,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Description": "Failing after 1m30s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1770541435,
"Index": 18,
"State": "failure"
},
{
"RepoID": 25,
"Description": "Successful in 7s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1770541554,
"ID": 85343,
"Index": 19,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1770541554
},
{
"Description": "Failing after 23s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1770541652,
"ID": 85347,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"CreatorID": -2,
"UpdatedUnix": 1770541652,
"Index": 20,
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"ID": 5,
"LoginType": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"IsAdmin": false,
"AllowGitHook": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Type": 0,
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"LastRepoVisibility": false,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
182,
165,
210,
85,
112,
247,
140,
213,
205,
198,
252,
137,
245,
16,
169,
245,
130,
57,
139,
72
],
"ResolvedID": null
}
},
"ID": [
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#412)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/412\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
]
]
}
},
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"LowerName": "luke",
"LoginSource": 2,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"Visibility": 1,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginType": 6,
"Type": 0,
"Language": "en-US",
"Description": "",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"NumFollowers": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"IsRestricted": false,
"Name": "luke",
"Location": "",
"MaxRepoCreation": -1,
"IsActive": true
},
"SigningKey": "[*asymkey.GPGKey]"
}
},
"Status": {
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3",
"ContextHash": "",
"CreatorID": 0
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3",
"Description": "",
"ContextHash": "",
"ID": 0,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/0",
"Description": "Successful in 13s",
"CreatorID": -2,
"CreatedUnix": 1769331690,
"ID": 79838,
"SHA": "a8454098c1c988e246e64541399741598392860c",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1769331690,
"Index": 5
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1769331723,
"ID": 79860,
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1769331723,
"Index": 7
},
{
"ID": 79870,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"Index": 8,
"State": "success",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1769331768,
"UpdatedUnix": 1769331768
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1769331812,
"ID": 79871,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1769331812,
"Index": 9,
"Repo": "[*repo.Repository]",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Description": "Successful in 1m24s"
},
{
"ID": 79878,
"Index": 10,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 13s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"RepoID": 25,
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3",
"CreatorID": -2,
"CreatedUnix": 1769331942,
"UpdatedUnix": 1769331942
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"NumMembers": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginSource": 0,
"LoginName": "",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"Location": "",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowGitHook": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"NumStars": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumFollowing": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"IsActive": true
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"LoginName": "",
"Description": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"ProhibitLogin": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"NumMembers": 0,
"Website": "https://renovatebot.com",
"NumStars": 0,
"Visibility": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
4,
24,
38,
128,
10,
151,
131,
87,
181,
79,
200,
224,
59,
231,
243,
92,
61,
198,
213
],
"ResolvedID": null
}
},
"ID": [
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#411)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"LowerName": "luke",
"Location": "",
"Language": "en-US",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ID": 3,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Type": 0,
"NumFollowers": 0,
"NumStars": 1,
"NumMembers": 0,
"Passwd": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"NumRepos": 3,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1776964991,
"IsActive": true,
"Name": "luke",
"LoginType": 6
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginType": 6,
"LoginSource": 2,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"Description": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 1,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"IsRestricted": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"DiffViewStyle": "unified",
"Type": 0,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"NumStars": 1,
"NumTeams": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
160,
109,
243,
213,
111,
228,
8,
253,
75,
112,
108,
61,
111,
204,
142,
219,
39,
111,
104,
238
],
"ResolvedID": null
}
},
"ID": [
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
],
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove Snyk security workflow and update renovate configuration (#410)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/410\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
]
]
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11",
"Context": "Security / snyk (push)",
"CreatedUnix": 1768953783,
"ID": 77974,
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"Description": "Successful in 31s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1768953783,
"Index": 6,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"Location": "",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"AllowCreateOrganization": false,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"LowerName": "luke",
"Salt": "",
"LastLoginUnix": 1776964991,
"KeepActivityPrivate": false,
"Name": "luke",
"Language": "en-US",
"IsAdmin": true,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Type": 0,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 1,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 2,
"CreatedUnix": 1713634307
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"UseCustomAvatar": true,
"ID": 5,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"NumStars": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"LoginName": "",
"KeepEmailPrivate": true,
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
159,
229,
97,
136,
224,
143,
219,
67,
58,
190,
119,
157,
71,
56,
63,
33,
206,
43,
124,
247
],
"ResolvedID": null
}
},
"ID": [
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#409)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/409\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
]
]
}
}
}
},
{
"Statuses": [
{
"ID": 77521,
"State": "success",
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8",
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1768853997,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 30s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1768853997
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumStars": 1,
"Theme": "tangerine-dream",
"Type": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"LoginSource": 2,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Name": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Description": "",
"MaxRepoCreation": -1,
"NumRepos": 3,
"Visibility": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"NumTeams": 0,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"Salt": "",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false
},
"Commit": {
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
]
],
"Tree": {
"TreeCommon": {
"ID": [
69,
213,
163,
134,
88,
68,
122,
118,
114,
72,
52,
182,
59,
163,
144,
66,
223,
178,
14,
250
],
"ResolvedID": null
}
},
"ID": [
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
]
}
},
"Verification": {
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginSource": 2,
"Type": 0,
"IsAdmin": true,
"Visibility": 1,
"DiffViewStyle": "unified",
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"ID": 3,
"PasswdHashAlgo": "",
"Salt": "",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumMembers": 0,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 1,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "luke",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"KeepActivityPrivate": false,
"Passwd": "",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25
}
},
{
"Statuses": [
{
"ID": 77311,
"Index": 4,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"Description": "Successful in 2m0s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1768780956,
"State": "success",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768780956
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LastRepoVisibility": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"LoginName": "",
"Type": 0,
"IsAdmin": false,
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"ID": 5,
"LoginType": 0,
"Location": "",
"Language": "en-US",
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"LoginSource": 0,
"Description": "",
"AllowCreateOrganization": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
20,
218,
209,
10,
9,
227,
144,
104,
12,
105,
69,
239,
73,
157,
20,
120,
122,
140,
253,
122
],
"ResolvedID": null
}
},
"ID": [
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency black to v26 (#408)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
]
]
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"FullName": "Luke Tainton",
"Location": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"DiffViewStyle": "unified",
"UseCustomAvatar": true,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 1,
"LowerName": "luke",
"Name": "luke",
"Passwd": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowGitHook": false,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"IsAdmin": true,
"AllowImportLocal": false,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsActive": true,
"ID": 3,
"KeepEmailPrivate": false,
"Language": "en-US",
"NumFollowers": 0
}
}
},
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"Description": "",
"Context": "",
"ID": 0,
"Index": 0,
"RepoID": 25,
"ContextHash": "",
"Creator": "[*user.User]"
}
},
{
"Status": {
"State": "failure",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"Description": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"RepoID": 25
},
"Statuses": [
{
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 30s",
"CreatedUnix": 1768694592,
"UpdatedUnix": 1768694592,
"ID": 77043,
"Index": 12,
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/868/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
},
{
"Index": 14,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Description": "Successful in 16s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1768726872,
"ID": 77139,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1768726872
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Index": 19,
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768726939,
"UpdatedUnix": 1768726939,
"ID": 77172,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/1",
"Description": "Successful in 1s"
},
{
"RepoID": 25,
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Description": "Successful in 1m10s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1768727013,
"Index": 20,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/4",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768727013,
"ID": 77179
},
{
"ID": 77181,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/2",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 21,
"RepoID": 25,
"State": "success",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1768727044,
"UpdatedUnix": 1768727044
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768727237,
"ID": 77187,
"Index": 22,
"RepoID": 25,
"State": "failure",
"Description": "Failing after 13s",
"CreatorID": -2,
"UpdatedUnix": 1768727237,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 1,
"PasswdHashAlgo": "",
"Location": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"AllowImportLocal": false,
"ID": 3,
"Salt": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"Passwd": "",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Type": 0,
"Description": ""
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"IsActive": true,
"DiffViewStyle": "",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"LoginType": 0,
"Type": 0,
"Location": "",
"NumStars": 0,
"NumMembers": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"Theme": "gitea-auto"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
36,
83,
75,
86,
156,
156,
57,
123,
49,
123,
143,
64,
145,
5,
68,
146,
66,
123,
213,
44
]
}
},
"ID": [
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#407)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/407\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e",
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1767611980,
"ID": 74896,
"Index": 2,
"RepoID": 25,
"State": "success",
"Description": "Successful in 46s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1767611980
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"Visibility": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"ProhibitLogin": false,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumMembers": 0,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"PasswdHashAlgo": "",
"Language": "en-US",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"LoginSource": 2,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 1,
"ID": 3,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false
},
"UserCommit": {
"User": {
"Type": 0,
"LowerName": "renovate-bot",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"KeepActivityPrivate": false,
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"LoginSource": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"ProhibitLogin": false,
"NumFollowing": 0,
"Website": "https://renovatebot.com",
"IsAdmin": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowGitHook": false,
"DiffViewStyle": "",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Description": "",
"AllowCreateOrganization": false,
"NumStars": 0,
"NumTeams": 0,
"LoginType": 0,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
99,
145,
160,
10,
240,
4,
130,
18,
234,
156,
176,
119,
55,
229,
26,
8,
145,
82,
226,
220
],
"ResolvedID": null
}
},
"ID": [
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#406)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/406\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"ID": 74560,
"Index": 18,
"RepoID": 25,
"State": "success",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"Description": "Successful in 10s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1767517260,
"UpdatedUnix": 1767517260
},
{
"State": "success",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1767517342,
"UpdatedUnix": 1767517342,
"ID": 74575
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2m0s",
"UpdatedUnix": 1767517467,
"ID": 74583,
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1767517467,
"Index": 22,
"RepoID": 25
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "Failing after 45s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"ID": 74587,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/2",
"Creator": "[*user.User]",
"CreatedUnix": 1767517611,
"UpdatedUnix": 1767517611,
"Index": 23
},
{
"CreatedUnix": 1767517611,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/3",
"Creator": "[*user.User]",
"UpdatedUnix": 1767517611,
"ID": 74588,
"Index": 24,
"State": "skipped",
"Description": "Has been skipped",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2
},
{
"Description": "Successful in 43s",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1767571431,
"Index": 26,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1767571431,
"ID": 74803,
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"NumStars": 1,
"NumRepos": 3,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"Location": "",
"Description": "",
"NumFollowers": 0,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginSource": 2,
"Language": "en-US",
"IsActive": true,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Type": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"AllowGitHook": false,
"NumStars": 0,
"NumRepos": 0,
"AllowImportLocal": false,
"IsActive": true,
"Name": "renovate-bot",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"Visibility": 0,
"Theme": "gitea-auto",
"ID": 5,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"NumFollowing": 0,
"DiffViewStyle": ""
},
"Commit": {
"Parents": [
[
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
113,
25,
112,
167,
230,
168,
226,
148,
28,
114,
101,
231,
195,
92,
119,
85,
175,
159,
60,
70
]
}
},
"ID": [
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#405)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni4xMSIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/405\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0",
"Description": "",
"ContextHash": "",
"RepoID": 25,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1766912445,
"Index": 40,
"Repo": "[*repo.Repository]",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Description": "Successful in 8s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1766912445,
"ID": 73534,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"RepoID": 25,
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1766912492,
"ID": 73549,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1766912492,
"Index": 43
},
{
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/4",
"Description": "Failing after 58s",
"CreatedUnix": 1766912552,
"UpdatedUnix": 1766912552,
"Index": 44,
"RepoID": 25,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 73557,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601"
},
{
"Index": 45,
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatedUnix": 1766912603,
"UpdatedUnix": 1766912603,
"ID": 73559,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1s",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2
},
{
"Index": 46,
"Description": "Failing after 9s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766912675,
"UpdatedUnix": 1766912675,
"ID": 73562,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)"
},
{
"Context": "Security / snyk (push)",
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1766966547,
"UpdatedUnix": 1766966547,
"ID": 73604,
"Index": 48,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0",
"Description": "Successful in 49s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"UseCustomAvatar": true,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"IsRestricted": false,
"NumFollowers": 0,
"LastRepoVisibility": false,
"IsActive": true,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Salt": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"LoginName": "luke@tainton.uk",
"Description": "",
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LoginSource": 2,
"IsAdmin": true,
"Name": "luke",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Parents": [
[
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
]
],
"Tree": {
"TreeCommon": {
"ID": [
98,
1,
147,
211,
224,
214,
129,
0,
246,
13,
59,
205,
197,
57,
102,
100,
69,
171,
241,
109
],
"ResolvedID": null
}
},
"ID": [
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#404)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/404\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"MaxRepoCreation": -1,
"NumStars": 0,
"IsAdmin": false,
"AllowImportLocal": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Type": 0,
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumTeams": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"LastRepoVisibility": false,
"ID": 5,
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false
}
}
}
},
{
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"KeepActivityPrivate": false,
"Name": "luke",
"AllowImportLocal": false,
"NumFollowers": 0,
"Passwd": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"IsActive": true,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumTeams": 0,
"MustChangePassword": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumRepos": 3,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ID": 3,
"LoginType": 6,
"Description": "",
"IsRestricted": false,
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"LastRepoVisibility": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"UseCustomAvatar": true,
"Type": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"LoginName": "",
"Location": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"NumStars": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"LoginType": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowing": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
34,
163,
87,
58,
25,
201,
167,
129,
87,
106,
169,
213,
225,
157,
254,
76,
255,
137,
27,
119
],
"ResolvedID": null
}
},
"ID": [
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#403)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/403\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
]
]
}
}
},
"Status": {
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"State": "failure",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765702862,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1765702862,
"ID": 71629,
"State": "success"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1765702919,
"UpdatedUnix": 1765702919,
"ID": 71646,
"Index": 15,
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/4",
"Description": "Successful in 1m14s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1765702997,
"ID": 71655,
"Index": 16,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1765702997
},
{
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/2",
"Description": "Successful in 1s",
"CreatorID": -2,
"CreatedUnix": 1765703082,
"Index": 17,
"Repo": "[*repo.Repository]",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765703082,
"ID": 71658,
"RepoID": 25,
"State": "success"
},
{
"Index": 18,
"RepoID": 25,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/3",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1765703202,
"ID": 71662,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 9s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"UpdatedUnix": 1765703202
},
{
"Description": "Successful in 32s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"ID": 71797,
"RepoID": 25,
"State": "success",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1765756995,
"UpdatedUnix": 1765756995,
"Index": 20,
"Repo": "[*repo.Repository]",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0"
}
]
},
{
"Statuses": [
{
"UpdatedUnix": 1765411368,
"Index": 8,
"RepoID": 25,
"State": "success",
"Description": "Successful in 1m49s",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 70965,
"Repo": "[*repo.Repository]",
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f",
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1765411368
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"FullName": "Luke Tainton",
"Salt": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"Name": "luke",
"Passwd": "",
"Type": 0,
"Description": "",
"NumFollowing": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"MustChangePassword": false,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Visibility": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Language": "en-US"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Visibility": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Type": 0,
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"AllowGitHook": false,
"NumFollowers": 0,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Location": "",
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumStars": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LoginName": "",
"IsActive": true,
"NumTeams": 0
},
"Commit": {
"Parents": [
[
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
246,
0,
51,
146,
25,
100,
253,
53,
248,
137,
179,
121,
145,
38,
230,
64,
94,
83,
85
],
"ResolvedID": null
}
},
"ID": [
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#402)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/402\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f",
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
}
},
{
"Status": {
"ID": 0,
"RepoID": 25,
"State": "success",
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 29s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 70413,
"RepoID": 25,
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1765179951,
"UpdatedUnix": 1765179951,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"DiffViewStyle": "unified",
"ProhibitLogin": false,
"NumStars": 1,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 6,
"Language": "en-US",
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"Description": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Passwd": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"IsRestricted": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumStars": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Description": "",
"NumRepos": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"ProhibitLogin": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"LoginSource": 0,
"Location": "",
"IsRestricted": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#401)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/401\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
]
],
"Tree": {
"TreeCommon": {
"ID": [
56,
81,
31,
170,
203,
144,
118,
178,
47,
101,
58,
103,
22,
231,
218,
99,
180,
120,
44,
85
],
"ResolvedID": null
}
},
"ID": [
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "26dba20357fa8fa743292be37317312e1818568f"
},
"Statuses": [
{
"ID": 70364,
"RepoID": 25,
"State": "success",
"Description": "Successful in 1m38s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765152149,
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "26dba20357fa8fa743292be37317312e1818568f",
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1765152149
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"LoginSource": 2,
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"NumRepos": 3,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"AllowCreateOrganization": false,
"LowerName": "luke",
"Name": "luke",
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowGitHook": false,
"NumMembers": 0,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"AllowImportLocal": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Type": 0,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"CommitMessage": "chore(deps): update dependency pylint to v4 (#399)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.1.0` -> `<4.1.0,>=4.0.4` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.4`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.4)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.4)\n\n## What's new in Pylint 4.0.4?\n\nRelease date: 2025-11-30\n\n## False Positives Fixed\n\n- Fixed false positive for `invalid-name` where module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.\n\n Closes [#​10719](https://github.com/pylint-dev/pylint/issues/10719)\n\n- Fix a false positive for `invalid-name` on an UPPER\\_CASED name inside an `if` branch that assigns an object.\n\n Closes [#​10745](https://github.com/pylint-dev/pylint/issues/10745)\n\n### [`v4.0.3`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.3)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3)\n\n## What's new in Pylint 4.0.3?\n\nRelease date: 2025-11-13\n\n## False Positives Fixed\n\n- Add Enum dunder methods `_generate_next_value_`, `_missing_`, `_numeric_repr_`, `_add_alias_`, and `_add_value_alias_` to the list passed to `--good-dunder-names`.\n\n Closes [#​10435](https://github.com/pylint-dev/pylint/issues/10435)\n\n- Fixed false positive for `invalid-name` with `typing.Annotated`.\n\n Closes [#​10696](https://github.com/pylint-dev/pylint/issues/10696)\n\n- Fix false positive for `f-string-without-interpolation` with template strings\n when using format spec.\n\n Closes [#​10702](https://github.com/pylint-dev/pylint/issues/10702)\n\n- Fix a false positive when an UPPER\\_CASED class attribute was raising an\n `invalid-name` when typed with `Final`.\n\n Closes [#​10711](https://github.com/pylint-dev/pylint/issues/10711)\n\n- Fix a false positive for `unbalanced-tuple-unpacking` when a tuple is assigned to a function call and the structure of the function's return value is ambiguous.\n\n Closes [#​10721](https://github.com/pylint-dev/pylint/issues/10721)\n\n## Other Bug Fixes\n\n- Make 'ignore' option work as expected again.\n\n Closes [#​10669](https://github.com/pylint-dev/pylint/issues/10669)\n\n- Fix crash for `consider-using-assignment-expr` when a variable annotation without assignment\n is used as the `if` test expression.\n\n Closes [#​10707](https://github.com/pylint-dev/pylint/issues/10707)\n\n- Fix crash for `prefer-typing-namedtuple` and `consider-math-not-float` when\n a `slice` object is called.\n\n Closes [#​10708](https://github.com/pylint-dev/pylint/issues/10708)\n\n### [`v4.0.2`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.2)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.2)\n\n## False Positives Fixed\n\n- Fix false positive for `invalid-name` on a partially uninferable module-level constant.\n\n Closes [#​10652](https://github.com/pylint-dev/pylint/issues/10652)\n\n- Fix a false positive for `invalid-name` on exclusive module-level assignments\n composed of three or more branches. We won't raise `disallowed-name` on module-level names that can't be inferred\n until a further refactor to remove this false negative is done.\n\n Closes [#​10664](https://github.com/pylint-dev/pylint/issues/10664)\n\n- Fix false positive for `invalid-name` for `TypedDict` instances.\n\n Closes [#​10672](https://github.com/pylint-dev/pylint/issues/10672)\n\n### [`v4.0.1`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.1)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.0...v4.0.1)\n\n## What's new in Pylint 4.0.1?\n\nRelease date: 2025-10-14\n\n## False Positives Fixed\n\n- Exclude `__all__` and `__future__.annotations` from `unused-variable`.\n\n Closes [#​10019](https://github.com/pylint-dev/pylint/issues/10019)\n\n- Fix false-positive for `bare-name-capture-pattern` if a case guard is used.\n\n Closes [#​10647](https://github.com/pylint-dev/pylint/issues/10647)\n\n- Check enums created with the `Enum()` functional syntax to pass against the\n `--class-rgx` for the `invalid-name` check, like other enums.\n\n Closes [#​10660](https://github.com/pylint-dev/pylint/issues/10660)\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n # inference engine understands result.errors cannot be None\n # pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/399\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
]
],
"Tree": {
"TreeCommon": {
"ID": [
72,
85,
10,
212,
246,
38,
71,
70,
244,
238,
16,
246,
221,
211,
108,
244,
10,
123,
241,
78
],
"ResolvedID": null
}
},
"ID": [
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"User": {
"ID": 5,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Description": "",
"DiffViewStyle": "",
"LoginSource": 0,
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Visibility": 0,
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"Name": "renovate-bot",
"IsAdmin": false,
"ProhibitLogin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"LoginType": 6,
"MaxRepoCreation": -1,
"IsAdmin": true,
"IsRestricted": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"Salt": "",
"Description": "",
"NumFollowers": 0,
"NumRepos": 3,
"ID": 3,
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumStars": 1,
"LastRepoVisibility": false,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"NumFollowing": 0,
"NumStars": 0,
"CreatedUnix": 1735676388,
"IsActive": true,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"LoginName": "",
"Description": "",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Language": "en-US",
"NumRepos": 0,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"AllowImportLocal": false,
"NumMembers": 0,
"KeepEmailPrivate": true,
"Location": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"EmailNotificationsPreference": "disabled"
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#400)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/400\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
]
],
"Tree": {
"TreeCommon": {
"ID": [
5,
15,
160,
130,
189,
62,
26,
14,
129,
54,
113,
125,
195,
2,
185,
181,
90,
252,
198,
188
],
"ResolvedID": null
}
},
"ID": [
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
]
}
}
},
"Status": {
"State": "success",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"RepoID": 25
},
"Statuses": [
{
"UpdatedUnix": 1765106649,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"Description": "Successful in 28s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1765106649,
"ID": 70241,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]"
}
]
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 70065,
"Index": 4,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/791/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"State": "success",
"Description": "Successful in 1m37s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765065755,
"UpdatedUnix": 1765065755
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765098081,
"UpdatedUnix": 1765098081,
"ID": 70154,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Description": "Successful in 11s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Index": 7,
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/0"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 70171,
"Index": 11,
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/1",
"CreatedUnix": 1765098116,
"UpdatedUnix": 1765098116,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)"
},
{
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"UpdatedUnix": 1765098163,
"ID": 70180,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Description": "Failing after 46s",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1765098163,
"Index": 12
},
{
"ID": 70181,
"Index": 13,
"RepoID": 25,
"State": "success",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/2",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Repo": "[*repo.Repository]",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765098168,
"UpdatedUnix": 1765098168
},
{
"CreatorID": -2,
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatedUnix": 1765098326,
"UpdatedUnix": 1765098326,
"ID": 70186,
"Index": 14,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Failing after 10s",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LoginSource": 2,
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"KeepEmailPrivate": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"NumFollowers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"ID": 3,
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumMembers": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Location": "",
"Language": "en-US",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Location": "",
"UpdatedUnix": 1768857135,
"Type": 0,
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumStars": 0,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"Visibility": 0,
"IsActive": true,
"EmailNotificationsPreference": "disabled",
"ProhibitLogin": false,
"NumTeams": 0,
"IsAdmin": false,
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumRepos": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumFollowers": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
220,
67,
1,
181,
75,
1,
117,
234,
73,
193,
202,
187,
125,
224,
179,
177,
161,
250,
50,
94
],
"ResolvedID": null
}
},
"ID": [
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#398)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/398\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
]
}
}
}
},
{
"Status": {
"State": "failure",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"ID": 68510,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/0",
"Description": "Successful in 12s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764493272,
"UpdatedUnix": 1764493272
},
{
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"Description": "Successful in 1s",
"CreatedUnix": 1764493310,
"UpdatedUnix": 1764493310,
"Index": 15,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 68528
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1764493382,
"UpdatedUnix": 1764493382,
"ID": 68538,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/4",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"Index": 16,
"Description": "Successful in 1m8s"
},
{
"CreatorID": -2,
"CreatedUnix": 1764493383,
"UpdatedUnix": 1764493383,
"ID": 68539,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Index": 17,
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"CreatedUnix": 1764493532,
"ID": 68544,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/3",
"Description": "Failing after 11s",
"Context": "Release / Build Wheel File (push)",
"UpdatedUnix": 1764493532,
"Index": 18,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1764979403,
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"Description": "Successful in 30s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1764979403,
"ID": 69689,
"Index": 30,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"MustChangePassword": false,
"LoginSource": 2,
"Salt": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumMembers": 0,
"PasswdHashAlgo": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Passwd": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Type": 0,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 3,
"KeepEmailPrivate": false,
"ProhibitLogin": false,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"NumTeams": 0,
"ID": 3,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"LowerName": "luke",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Description": "",
"Email": "luke@tainton.uk"
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1735676388,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"IsAdmin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"IsRestricted": false,
"ID": 5,
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"Type": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
173,
23,
222,
244,
220,
26,
221,
151,
202,
142,
158,
64,
2,
18,
114,
138,
133,
208,
241
],
"ResolvedID": null
}
},
"ID": [
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#397)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/397\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1763888468,
"ID": 66994,
"Index": 14,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1763888468,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888498,
"ID": 67003,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1763888498,
"Index": 15
},
{
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763888580,
"ID": 67008,
"Index": 16,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m19s",
"CreatorID": -2,
"UpdatedUnix": 1763888580,
"RepoID": 25,
"State": "success"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1s",
"CreatorID": -2,
"CreatedUnix": 1763888664,
"UpdatedUnix": 1763888664,
"ID": 67013,
"Index": 17,
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"CreatedUnix": 1763888734,
"UpdatedUnix": 1763888734,
"Index": 18,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/3",
"Description": "Failing after 8s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"ID": 67015,
"RepoID": 25,
"State": "failure",
"Creator": "[*user.User]"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"Description": "Successful in 29s",
"Creator": "[*user.User]",
"ID": 67793,
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1764201732,
"UpdatedUnix": 1764201732,
"Index": 26,
"RepoID": 25
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"UseCustomAvatar": true,
"NumRepos": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"NumTeams": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowers": 0,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Name": "renovate-bot",
"LoginType": 0,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com"
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#396)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/396\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
126,
142,
13,
211,
103,
35,
185,
45,
105,
246,
8,
90,
180,
223,
112,
140,
250,
75,
70,
182
],
"ResolvedID": null
}
},
"ID": [
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
]
}
},
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Location": "",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsActive": true,
"MustChangePassword": false,
"LowerName": "luke",
"Passwd": "",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"IsAdmin": true,
"AllowImportLocal": false,
"NumFollowing": 1,
"Visibility": 1,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumStars": 1,
"NumRepos": 3,
"LoginType": 6,
"ID": 3,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"Salt": "",
"Description": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
},
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "failure",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]"
}
},
{
"Status": {
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "4469b7ebb1f2af6799316063186883c159691553",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"CreatorID": -2,
"ID": 66073,
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"Description": "Successful in 1m25s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1763596954,
"UpdatedUnix": 1763596954,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4469b7ebb1f2af6799316063186883c159691553",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"MustChangePassword": false,
"Salt": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"AllowGitHook": false,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 1,
"NumMembers": 0,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Name": "luke",
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"ID": 3,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"PasswdHashAlgo": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"LastRepoVisibility": false,
"NumFollowers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Theme": "gitea-auto",
"ID": 5,
"LowerName": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowImportLocal": false,
"MustChangePassword": false,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Location": "",
"LastLoginUnix": 1768857135,
"NumStars": 0,
"Language": "en-US",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"LastRepoVisibility": false,
"NumFollowing": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
166,
1,
127,
104,
27,
25,
66,
25,
254,
228,
231,
152,
210,
90,
88,
58,
77,
254,
32,
200
],
"ResolvedID": null
}
},
"ID": [
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#394)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/394\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1763407338,
"ID": 65464,
"State": "success",
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"Description": "Successful in 35s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1763407338
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"KeepEmailPrivate": false,
"AllowGitHook": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"Type": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"NumTeams": 0,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"Description": "",
"NumMembers": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"LoginName": "",
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Visibility": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumTeams": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"LoginType": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"IsAdmin": false,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
91,
191,
127,
235,
96,
160,
229,
194,
236,
166,
1,
130,
108,
101,
81,
243,
173,
26,
39,
165
],
"ResolvedID": null
}
},
"ID": [
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#395)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/395\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
]
]
}
}
},
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"RepoID": 25,
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
}
},
{
"Statuses": [
{
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1763283641,
"Index": 17,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 12s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1763283641,
"ID": 65003,
"State": "success"
},
{
"State": "success",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1763283681,
"UpdatedUnix": 1763283681,
"ID": 65019,
"Index": 21,
"Repo": "[*repo.Repository]"
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1763283749,
"ID": 65028,
"Index": 22,
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/4",
"Description": "Successful in 1m4s",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1763283749,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3"
},
{
"ID": 65030,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763283769,
"Index": 23,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/2",
"Description": "Successful in 2s",
"CreatorID": -2,
"UpdatedUnix": 1763283769
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/3",
"Description": "Failing after 8s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763283876,
"UpdatedUnix": 1763283876,
"ID": 65034,
"Index": 24,
"RepoID": 25
},
{
"Description": "Successful in 29s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763337724,
"ID": 65191,
"Index": 26,
"RepoID": 25,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1763337724,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"PasswdHashAlgo": "",
"Type": 0,
"Salt": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumMembers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"IsRestricted": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"LoginType": 6,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Visibility": 1,
"MustChangePassword": false,
"Description": "",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Passwd": "",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Theme": "tangerine-dream",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"ID": 3,
"Name": "luke"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
42,
226,
121,
99,
136,
22,
219,
203,
63,
199,
190,
63,
142,
253,
170,
197,
150,
18,
96,
246
],
"ResolvedID": null
}
},
"ID": [
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#392)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/392\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
]
]
},
"User": {
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"Description": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsActive": true,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumStars": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"LoginName": "",
"KeepActivityPrivate": false,
"ID": 5,
"FullName": "renovate[bot]",
"AllowGitHook": false,
"AllowImportLocal": false,
"Theme": "gitea-auto",
"ProhibitLogin": false
}
}
},
"Status": {
"RepoID": 25,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"Creator": "[*user.User]",
"CreatedUnix": 0
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794",
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"State": "success",
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794",
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"Description": "Successful in 29s",
"Context": "Security / snyk (push)",
"ID": 63857,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762809315,
"UpdatedUnix": 1762809315,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"IsRestricted": false,
"Name": "luke",
"FullName": "Luke Tainton",
"Location": "",
"ProhibitLogin": false,
"NumStars": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"ID": 3,
"Language": "en-US",
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"Passwd": "",
"Description": "",
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0
}
},
"UserCommit": {
"User": {
"NumRepos": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"Location": "",
"Website": "https://renovatebot.com",
"Description": "",
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LoginSource": 0,
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowImportLocal": false,
"ProhibitLogin": false,
"IsActive": true,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0
},
"Commit": {
"ID": [
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#393)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/393\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
]
],
"Tree": {
"TreeCommon": {
"ID": [
217,
134,
68,
223,
185,
140,
184,
24,
100,
154,
202,
88,
139,
124,
2,
123,
217,
8,
151,
36
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"RepoID": 25,
"State": "failure"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/0",
"Description": "Successful in 13s",
"CreatorID": -2,
"UpdatedUnix": 1762678874,
"ID": 63435,
"Index": 7,
"RepoID": 25,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762678874
},
{
"UpdatedUnix": 1762678898,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"ID": 63449,
"Index": 11,
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1762678898
},
{
"CreatorID": -2,
"CreatedUnix": 1762678941,
"UpdatedUnix": 1762678941,
"ID": 63456,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"Index": 12,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/2",
"Description": "Successful in 2s",
"Context": "Release / Get Release ID (push)"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/4",
"Description": "Failing after 1m11s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 63457,
"Index": 13,
"RepoID": 25,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1762678972,
"UpdatedUnix": 1762678972
},
{
"ID": 63459,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/3",
"Description": "Failing after 13s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"Index": 14,
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1762679010,
"UpdatedUnix": 1762679010
},
{
"CreatorID": -2,
"CreatedUnix": 1762732935,
"UpdatedUnix": 1762732935,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"Description": "Successful in 1m20s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"ID": 63615,
"State": "success",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"IsRestricted": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": "",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumTeams": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Visibility": 0,
"DiffViewStyle": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"IsAdmin": false,
"KeepEmailPrivate": true,
"LoginSource": 0,
"AllowGitHook": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"ID": 5,
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"NumRepos": 0
},
"Commit": {
"CommitMessage": "chore(deps): update dependency pytest to v9 (#391)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.1.1` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/391\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
243,
74,
184,
156,
199,
136,
221,
222,
40,
36,
97,
254,
160,
16,
196,
118,
221,
228,
20
],
"ResolvedID": null
}
},
"ID": [
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Salt": "",
"Language": "en-US",
"IsRestricted": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"DiffViewStyle": "unified",
"Passwd": "",
"NumFollowing": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LoginType": 6,
"Type": 0,
"Location": "",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowImportLocal": false,
"LoginName": "luke@tainton.uk",
"ProhibitLogin": false,
"ID": 3,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 1,
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false,
"NumRepos": 3
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"ContextHash": "",
"Context": "",
"Index": 0,
"RepoID": 25,
"State": "failure",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"CreatedUnix": 1762074063,
"UpdatedUnix": 1762074063,
"Index": 11,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/0",
"Description": "Successful in 9s",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 61793,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1762074092,
"RepoID": 25,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 4s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"UpdatedUnix": 1762074092,
"ID": 61802,
"Index": 14
},
{
"Repo": "[*repo.Repository]",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074179,
"UpdatedUnix": 1762074179,
"ID": 61809,
"Index": 15,
"RepoID": 25,
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/4",
"Description": "Successful in 1m26s",
"Context": "Release / Publish Docker Images (push)"
},
{
"ID": 61810,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"RepoID": 25,
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074183,
"UpdatedUnix": 1762074183
},
{
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074196,
"UpdatedUnix": 1762074196,
"ID": 61812,
"Index": 17,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Failing after 11s",
"Context": "Release / Build Wheel File (push)"
},
{
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 1m32s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 63038,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1762560153,
"UpdatedUnix": 1762560153,
"Index": 29,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Passwd": "",
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"ProhibitLogin": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Visibility": 1,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"LoginType": 6,
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowers": 0,
"NumMembers": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ID": 3,
"LowerName": "luke",
"FullName": "Luke Tainton",
"IsRestricted": false,
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"IsRestricted": false,
"Type": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginType": 0,
"Location": "",
"NumTeams": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"NumRepos": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"NumMembers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"ID": 5,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#390)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/390\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
159,
187,
252,
77,
29,
152,
33,
69,
239,
98,
143,
222,
61,
77,
227,
28,
22,
98,
16,
224
]
}
},
"ID": [
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"State": "success",
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0",
"Description": "Successful in 26s",
"CreatedUnix": 1761855246,
"Repo": "[*repo.Repository]",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1761855246,
"ID": 60421,
"Index": 2,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Passwd": "",
"PasswdHashAlgo": "",
"Description": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumRepos": 3,
"NumTeams": 0,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Theme": "tangerine-dream",
"LoginSource": 2,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": true,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"IsRestricted": false,
"FullName": "Luke Tainton",
"Location": "",
"Salt": "",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"Visibility": 1,
"LoginType": 6
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"Salt": "",
"AllowGitHook": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Type": 0,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Description": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"LowerName": "luke",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"Name": "luke",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"LoginType": 6
},
"Commit": {
"Parents": [
[
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
182,
29,
150,
86,
79,
148,
189,
250,
5,
243,
82,
227,
77,
32,
212,
61,
163,
166,
71
],
"ResolvedID": null
}
},
"ID": [
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"State": "failure",
"ContextHash": ""
},
"Statuses": [
{
"UpdatedUnix": 1761469268,
"Index": 19,
"RepoID": 25,
"State": "success",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1761469268,
"ID": 54029,
"Repo": "[*repo.Repository]",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/0",
"Description": "Successful in 17s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]"
},
{
"CreatorID": -2,
"CreatedUnix": 1761469309,
"UpdatedUnix": 1761469309,
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/1",
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 54046,
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580"
},
{
"UpdatedUnix": 1761469344,
"Index": 22,
"RepoID": 25,
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/2",
"Description": "Successful in 6s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"ID": 54052,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761469344
},
{
"Description": "Failing after 1m9s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1761469378,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1761469378,
"ID": 54053,
"Index": 23,
"RepoID": 25,
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1"
},
{
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Context": "Release / Build Wheel File (push)",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/3",
"Description": "Failing after 10s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761469387,
"UpdatedUnix": 1761469387,
"ID": 54055,
"Index": 24,
"RepoID": 25,
"State": "failure"
},
{
"Index": 32,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761782537,
"ID": 60078,
"RepoID": 25,
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"Description": "Successful in 1m9s",
"UpdatedUnix": 1761782537
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Name": "luke",
"Description": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Location": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsActive": true,
"IsAdmin": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumStars": 1,
"LoginType": 6,
"Type": 0,
"Language": "en-US",
"AllowGitHook": false,
"NumRepos": 3,
"Visibility": 1,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 1
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": false,
"Type": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumMembers": 0,
"LoginType": 0,
"LastRepoVisibility": false,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"KeepActivityPrivate": false,
"ID": 5,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"IsActive": true
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#389)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/389\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
54,
103,
125,
185,
0,
199,
68,
86,
224,
205,
238,
91,
28,
64,
99,
13,
1,
136,
67
],
"ResolvedID": null
}
},
"ID": [
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
]
}
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"UpdatedUnix": 1760864454,
"ID": 50362,
"Index": 16,
"RepoID": 25,
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "Successful in 8s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1760864454
},
{
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1760864474,
"ID": 50373,
"Index": 19,
"State": "success",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1760864474,
"RepoID": 25
},
{
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"CreatedUnix": 1760864527,
"UpdatedUnix": 1760864527,
"ID": 50380,
"Index": 20,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "Successful in 2s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760864553,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/4",
"Description": "Successful in 1m15s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1760864553,
"ID": 50382,
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba"
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1760864594,
"Index": 22,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 50s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1760864594,
"ID": 50385,
"RepoID": 25,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/3"
},
{
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1760918507,
"Index": 24,
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "Successful in 1m1s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1760918507,
"ID": 50575,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"NumFollowers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"Type": 0,
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Name": "luke",
"ProhibitLogin": false,
"LowerName": "luke",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"IsRestricted": false,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"NumStars": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"Visibility": 1,
"FullName": "Luke Tainton",
"AllowGitHook": false
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Type": 0,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"NumStars": 0,
"LowerName": "renovate-bot",
"LoginName": "",
"NumFollowers": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
254,
243,
36,
142,
163,
222,
112,
187,
187,
236,
157,
22,
236,
160,
31,
39,
162,
244,
236,
236
],
"ResolvedID": null
}
},
"ID": [
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#382)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/382\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
]
]
}
}
}
},
{
"Status": {
"State": "success",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"ID": 49433,
"State": "success",
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"Description": "Successful in 2m2s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1760378766,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760378766
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(ci): Remove dependencies of dependencies (#388)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/388\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
62,
247,
80,
124,
183,
229,
128,
57,
154,
145,
227,
147,
52,
32,
207,
81,
37,
171,
140,
45
],
"ResolvedID": null
}
},
"ID": [
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
]
},
"User": {
"IsAdmin": true,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Salt": "",
"Description": "",
"AllowImportLocal": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"ProhibitLogin": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"Type": 0,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"NumRepos": 3,
"ID": 3,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"LoginSource": 2,
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"LowerName": "luke",
"MaxRepoCreation": -1
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"CommittingUser": {
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Language": "en-US",
"AllowGitHook": false,
"Type": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"ID": 3,
"UpdatedUnix": 1776964991,
"IsActive": true,
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"FullName": "Luke Tainton",
"Passwd": "",
"LoginType": 6,
"IsAdmin": true,
"Visibility": 1,
"IsRestricted": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"Description": "Successful in 2m5s",
"Context": "Security / snyk (push)",
"CreatedUnix": 1760377958,
"ID": 49415,
"Index": 2,
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760377958,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumStars": 1,
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"UpdatedUnix": 1776964991,
"Location": "",
"Salt": "",
"Language": "en-US",
"UseCustomAvatar": true,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"IsRestricted": false,
"Theme": "tangerine-dream",
"Name": "luke",
"FullName": "Luke Tainton",
"LoginType": 6,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"ID": 3,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"Description": "",
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"Website": "https://luke.tainton.uk",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false
}
},
"UserCommit": {
"User": {
"Type": 0,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"KeepActivityPrivate": false,
"IsActive": true,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"NumFollowing": 0,
"LastRepoVisibility": false,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Location": "",
"NumMembers": 0,
"DiffViewStyle": "",
"LoginName": "",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"NumFollowers": 0,
"NumStars": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"IsRestricted": false,
"ID": 5,
"Name": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Language": "en-US",
"UseCustomAvatar": true,
"IsAdmin": false,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com"
},
"Commit": {
"Parents": [
[
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
]
],
"Tree": {
"TreeCommon": {
"ID": [
88,
190,
39,
144,
105,
200,
65,
23,
141,
112,
122,
41,
215,
29,
96,
55,
100,
121,
193,
247
],
"ResolvedID": null
}
},
"ID": [
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency idna to v3.11 (#386)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [idna](https://github.com/kjd/idna) ([changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)) | `==3.10` -> `==3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.11`](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n[Compare Source](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/386\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"Location": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"Description": "",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Name": "luke",
"Type": 0,
"Language": "en-US",
"IsAdmin": true,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Salt": "",
"NumFollowers": 0,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Passwd": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"NumStars": 1,
"ID": 3,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"Type": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumTeams": 0,
"DiffViewStyle": "",
"LoginName": "",
"Language": "en-US",
"ProhibitLogin": false,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumStars": 0,
"Theme": "gitea-auto",
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"ID": 5,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"Visibility": 0
},
"Commit": {
"CommitMessage": "fix(deps): update dependency platformdirs to v4.5.0 (#384)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.4.0` -> `==4.5.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.5.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.5.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0)\n\n<!-- Release notes generated using configuration in .github/release.yml at main -->\n\n#### What's Changed\n\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​376](https://github.com/tox-dev/platformdirs/pull/376)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​378](https://github.com/tox-dev/platformdirs/pull/378)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​379](https://github.com/tox-dev/platformdirs/pull/379)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​381](https://github.com/tox-dev/platformdirs/pull/381)\n- Add support for Python 3.14 by [@​hugovk](https://github.com/hugovk) in [#​382](https://github.com/tox-dev/platformdirs/pull/382)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​383](https://github.com/tox-dev/platformdirs/pull/383)\n- Update Windows file paths in README by [@​ParadaCarleton](https://github.com/ParadaCarleton) in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​384](https://github.com/tox-dev/platformdirs/pull/384)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​387](https://github.com/tox-dev/platformdirs/pull/387)\n- Bump astral-sh/setup-uv from 6 to 7 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​388](https://github.com/tox-dev/platformdirs/pull/388)\n- Drop 3.9 support by [@​gaborbernat](https://github.com/gaborbernat) in [#​389](https://github.com/tox-dev/platformdirs/pull/389)\n\n#### New Contributors\n\n- [@​ParadaCarleton](https://github.com/ParadaCarleton) made their first contribution in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/384\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
]
],
"Tree": {
"TreeCommon": {
"ID": [
71,
63,
1,
192,
221,
66,
155,
88,
185,
135,
226,
161,
186,
138,
4,
131,
157,
31,
74,
166
],
"ResolvedID": null
}
},
"ID": [
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"Description": "",
"ContextHash": "",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"ID": 49020,
"Index": 6,
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1760259760,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Has been skipped",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1760259760
},
{
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Has been skipped",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"UpdatedUnix": 1760259763,
"ID": 49022,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/2",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1760259763,
"Index": 7,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"ID": 49024,
"Index": 8,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1760259765,
"UpdatedUnix": 1760259765,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Failing after 1m49s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2
},
{
"Index": 9,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1760259766,
"ID": 49026,
"RepoID": 25,
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Has been skipped",
"CreatorID": -2,
"UpdatedUnix": 1760259766
},
{
"ID": 49028,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/4",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 10,
"State": "success",
"Description": "Has been skipped",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1760259770,
"UpdatedUnix": 1760259770
},
{
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1760314796,
"ID": 49161,
"RepoID": 25,
"State": "success",
"Description": "Successful in 19m12s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760314796,
"Index": 12,
"Repo": "[*repo.Repository]"
}
]
},
{
"Status": {
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66",
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "failure",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"ID": 48813,
"State": "failure",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760181131,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66",
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"Context": "Security / snyk (push)",
"CreatedUnix": 1760181131
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"AllowGitHook": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Description": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"LoginType": 6,
"Type": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"AllowCreateOrganization": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"IsActive": true,
"NumFollowing": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"AllowImportLocal": false
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumRepos": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Description": "",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Language": "en-US",
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"NumFollowing": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"LoginType": 0,
"LastRepoVisibility": false,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"NumStars": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tomli to v2.3.0 (#385)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [tomli](https://github.com/hukkin/tomli) ([changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md)) | `==2.2.1` -> `==2.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hukkin/tomli (tomli)</summary>\n\n### [`v2.3.0`](https://github.com/hukkin/tomli/blob/HEAD/CHANGELOG.md#230)\n\n[Compare Source](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0)\n\n- Added\n - Binary wheels for Python 3.14 (also free-threaded)\n- Performance\n - Reduced import time\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/385\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
29,
169,
234,
15,
190,
223,
62,
143,
49,
81,
119,
29,
180,
16,
48,
193,
65,
13,
114
],
"ResolvedID": null
}
},
"ID": [
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
}
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"CreatorID": 0,
"UpdatedUnix": 0,
"State": "success",
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760142525,
"UpdatedUnix": 1760142525,
"ID": 48765,
"Index": 8,
"RepoID": 25,
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"Description": "Successful in 27m38s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"Salt": "",
"AllowGitHook": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"MustChangePassword": false,
"Theme": "tangerine-dream",
"LoginSource": 2,
"ID": 3,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"LoginName": "luke@tainton.uk",
"LowerName": "luke",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"Type": 0,
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"Description": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 1
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": "",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"ID": 5,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Location": "",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"UseCustomAvatar": true,
"NumRepos": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"LoginName": "",
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false
},
"Commit": {
"Parents": [
[
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
169,
218,
217,
40,
104,
71,
145,
149,
198,
245,
229,
14,
217,
16,
231,
193,
194,
128,
11,
229
]
}
},
"ID": [
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update astral-sh/setup-uv action to v7 (#383)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | action | major | `v6` -> `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>\n\n### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n[Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzOS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/383\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"RepoID": 25
},
"Statuses": [
{
"ID": 48008,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"RepoID": 25,
"Description": "Successful in 24m11s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1759796682,
"UpdatedUnix": 1759796682
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumTeams": 0,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumMembers": 0,
"Salt": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Language": "en-US",
"AllowGitHook": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false
},
"UserCommit": {
"User": {
"LoginName": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Visibility": 0,
"IsAdmin": false,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"Website": "https://renovatebot.com",
"Description": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"LoginType": 0,
"Location": "",
"IsRestricted": false,
"Type": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#380)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/380\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
112,
215,
7,
250,
219,
211,
180,
81,
141,
230,
203,
26,
91,
177,
251,
221,
168,
51,
121
],
"ResolvedID": null
}
},
"ID": [
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"State": "failure",
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 4,
"RepoID": 25,
"State": "failure",
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1759774356,
"UpdatedUnix": 1759774356,
"ID": 47938,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Description": "Has been cancelled"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"NumRepos": 3,
"Passwd": "",
"MustChangePassword": false,
"IsAdmin": true,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"ID": 3,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Description": "",
"AllowCreateOrganization": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"ProhibitLogin": false,
"UseCustomAvatar": true,
"IsActive": true,
"IsRestricted": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false
},
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"ProhibitLogin": false,
"NumTeams": 0,
"LoginSource": 0,
"Type": 0,
"Location": "",
"UseCustomAvatar": true,
"NumMembers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginName": "",
"IsAdmin": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"MaxRepoCreation": -1,
"IsActive": true,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency attrs to v25.4.0 (#381)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [attrs](https://github.com/python-attrs/attrs) ([changelog](https://www.attrs.org/en/stable/changelog.html)) | `==25.3.0` -> `==25.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-attrs/attrs (attrs)</summary>\n\n### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06)\n\n[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0)\n\n##### Backwards-incompatible Changes\n\n- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.\n\n Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.\n If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.\n\n Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.\n\n This shouldn't be a problem for most users, unless you have a pattern like this:\n\n ```python\n @​attrs.define(kw_only=True)\n class Base:\n a: int\n b: int = attrs.field(default=1, kw_only=False)\n\n @​attrs.define\n class Subclass(Base):\n c: int\n ```\n\n Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).\n Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.\n [#​1457](https://github.com/python-attrs/attrs/issues/1457)\n\n##### Changes\n\n- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\\_only* was not specified).\n [#​1427](https://github.com/python-attrs/attrs/issues/1427)\n- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/).\n [#​1446](https://github.com/python-attrs/attrs/issues/1446),\n [#​1451](https://github.com/python-attrs/attrs/issues/1451)\n- `attrs.validators.deep_mapping()` now allows to leave out either *key\\_validator* xor *value\\_validator*.\n [#​1448](https://github.com/python-attrs/attrs/issues/1448)\n- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.\n [#​1449](https://github.com/python-attrs/attrs/issues/1449)\n- Added a new **experimental** way to inspect classes:\n\n `attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.\n\n The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.\n [#​1454](https://github.com/python-attrs/attrs/issues/1454)\n- Fixed annotations for `attrs.field(converter=...)`.\n Previously, a `tuple` of converters was only accepted if it had exactly one element.\n [#​1461](https://github.com/python-attrs/attrs/issues/1461)\n- The performance of `attrs.asdict()` has been improved by 45–260%.\n [#​1463](https://github.com/python-attrs/attrs/issues/1463)\n- The performance of `attrs.astuple()` has been improved by 49–270%.\n [#​1469](https://github.com/python-attrs/attrs/issues/1469)\n- The type annotation for `attrs.validators.or_()` now allows for different types of validators.\n\n This was only an issue on Pyright.\n [#​1474](https://github.com/python-attrs/attrs/issues/1474)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
82,
123,
56,
178,
207,
166,
234,
42,
124,
227,
17,
225,
25,
205,
213,
160,
117,
239,
124,
123
],
"ResolvedID": null
}
},
"ID": [
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Description": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 1,
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"IsActive": true,
"NumRepos": 3,
"Visibility": 1,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Salt": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"NumMembers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Type": 0,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumTeams": 0,
"ID": 3,
"MustChangePassword": false,
"Location": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
}
},
"UserCommit": {
"User": {
"LoginName": "",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumStars": 0,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"ID": 5,
"LoginType": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"IsRestricted": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"MustChangePassword": false,
"LoginSource": 0,
"Description": "",
"IsAdmin": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.10.5 (#378)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.8.3` -> `==2025.10.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.10.5`](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/378\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
]
],
"Tree": {
"TreeCommon": {
"ID": [
1,
140,
118,
132,
127,
206,
47,
59,
178,
36,
114,
114,
252,
105,
232,
24,
144,
249,
44,
142
],
"ResolvedID": null
}
},
"ID": [
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"CreatorID": -2,
"ID": 47839,
"RepoID": 25,
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Description": "Successful in 21m35s",
"CreatedUnix": 1759710141,
"UpdatedUnix": 1759710141,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
}
]
},
{
"Status": {
"ID": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"CreatedUnix": 1759624495,
"UpdatedUnix": 1759624495,
"ID": 47679,
"Index": 35,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/625/jobs/0",
"Description": "Successful in 2m15s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"State": "success",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1759654956,
"Index": 40,
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/0",
"Description": "Successful in 1m22s",
"Creator": "[*user.User]",
"UpdatedUnix": 1759654956,
"ID": 47738,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"CreatorID": -2,
"UpdatedUnix": 1759655087,
"ID": 47749,
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/1",
"Description": "Successful in 3s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1759655087,
"Index": 42,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1759655396,
"ID": 47751,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/4",
"Description": "Failing after 5m8s",
"Creator": "[*user.User]",
"UpdatedUnix": 1759655396,
"Index": 43,
"RepoID": 25,
"State": "failure",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"Index": 44,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/2",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759655401,
"UpdatedUnix": 1759655401,
"ID": 47752
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatedUnix": 1759655442,
"ID": 47756,
"Index": 45,
"Description": "Failing after 35s",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"UpdatedUnix": 1759655442
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"LoginType": 6,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Name": "luke",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 1,
"NumRepos": 3,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"UpdatedUnix": 1776964991,
"ID": 3,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 1,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Description": "",
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"LowerName": "renovate-bot",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"Type": 0,
"Language": "en-US",
"AllowGitHook": false,
"IsRestricted": false,
"ID": 5,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"MustChangePassword": false,
"LoginType": 0,
"Location": "",
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"IsActive": true,
"NumStars": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0,
"Visibility": 0,
"IsAdmin": false
},
"Commit": {
"ID": [
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#377)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/377\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
]
],
"Tree": {
"TreeCommon": {
"ID": [
188,
198,
62,
242,
178,
189,
9,
100,
230,
40,
39,
18,
117,
218,
178,
3,
230,
110,
160,
171
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 2,
"RepoID": 25,
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"Description": "Successful in 3m38s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1758521980,
"ID": 45637,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1758521980
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumTeams": 0,
"CreatedUnix": 1713634307,
"NumStars": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Theme": "tangerine-dream",
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"Type": 0,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"Visibility": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Location": "",
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk"
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"Language": "en-US",
"NumRepos": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumFollowing": 0,
"LoginSource": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"LoginName": "",
"LoginType": 0,
"Location": "",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"DiffViewStyle": "",
"Type": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumTeams": 0
},
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#376)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/376\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
],
"Tree": {
"TreeCommon": {
"ID": [
163,
76,
82,
94,
73,
104,
32,
102,
6,
46,
43,
2,
99,
144,
193,
72,
43,
144,
22,
109
],
"ResolvedID": null
}
},
"ID": [
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
]
}
}
}
},
{
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 25,
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 45591,
"Index": 4,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1758500849,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"Description": "Successful in 27m11s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1758500849
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"MustChangePassword": false,
"Location": "",
"Description": "",
"IsAdmin": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 1,
"ID": 3,
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"NumFollowers": 0,
"Name": "luke",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Salt": "",
"IsActive": true,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Passwd": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumStars": 0,
"MustChangePassword": false,
"IsAdmin": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"ID": 5,
"Location": "",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"Language": "en-US",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"IsRestricted": false
},
"Commit": {
"ID": [
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.5 (#375)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.4` -> `==3.2.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/375\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
28,
59,
171,
205,
223,
162,
110,
114,
137,
221,
55,
150,
33,
137,
37,
32,
195,
0,
72,
31
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"State": "failure",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"ContextHash": "",
"Context": "",
"ID": 0,
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1758413334,
"Index": 6,
"State": "failure",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Failing after 8m13s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1758413334,
"ID": 45438,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/600/jobs/0"
},
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/0",
"Description": "Successful in 1m21s",
"CreatedUnix": 1758445332,
"RepoID": 25,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1758445332,
"ID": 45492,
"Index": 12
},
{
"CreatedUnix": 1758445751,
"UpdatedUnix": 1758445751,
"Index": 13,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Successful in 5m28s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 45506,
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"CreatorID": -2,
"RepoID": 25,
"State": "success",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758445771,
"UpdatedUnix": 1758445771,
"ID": 45511,
"Index": 14,
"Repo": "[*repo.Repository]",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/2",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"CreatorID": -2,
"CreatedUnix": 1758445957,
"UpdatedUnix": 1758445957,
"ID": 45512,
"RepoID": 25,
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/3",
"Description": "Successful in 3m2s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"Index": 15
},
{
"ID": 45513,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"CreatorID": -2,
"UpdatedUnix": 1758445962,
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Successful in 8m55s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758445962
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Passwd": "",
"LoginType": 6,
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"IsActive": true,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Name": "luke",
"IsRestricted": false,
"AllowImportLocal": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginType": 0,
"Type": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"ID": 5,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"LoginName": "",
"CreatedUnix": 1735676388,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"NumMembers": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Description": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"ID": [
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#374)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/374\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
117,
182,
82,
8,
25,
164,
55,
189,
230,
91,
38,
24,
62,
28,
101,
247,
243,
119,
139,
179
]
}
}
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 25,
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758240548,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"Description": "Failing after 8m8s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1758240548,
"ID": 45176,
"Index": 4,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumFollowers": 0,
"Visibility": 1,
"PasswdHashAlgo": "",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Type": 0,
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Description": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsActive": true,
"NumFollowing": 1,
"NumStars": 1,
"ID": 3,
"KeepEmailPrivate": false,
"LoginType": 6,
"AllowCreateOrganization": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"LoginSource": 2,
"Location": "",
"AllowGitHook": false,
"DiffViewStyle": "unified",
"IsRestricted": false,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk"
}
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginType": 0,
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"NumRepos": 0,
"NumTeams": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Description": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"NumStars": 0,
"LoginName": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"UpdatedUnix": 1768857135,
"KeepActivityPrivate": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
43,
67,
240,
174,
209,
50,
112,
104,
21,
81,
93,
168,
178,
28,
183,
39,
237,
187,
104,
237
],
"ResolvedID": null
}
},
"ID": [
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency click to v8.3.0 (#373)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.2` -> `==8.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.3.0`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-830)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.2...8.3.0)\n\nReleased 2025-09-15\n\n- **Improved flag option handling**: Reworked the relationship between `flag_value`\n and `default` parameters for better consistency:\n\n - The `default` parameter value is now preserved as-is and passed directly\n to CLI functions (no more unexpected transformations)\n - Exception: flag options with `default=True` maintain backward compatibility\n by defaulting to their `flag_value`\n - The `default` parameter can now be any type (`bool`, `None`, etc.)\n - Fixes inconsistencies reported in: :issue:`1992` :issue:`2514` :issue:`2610`\n :issue:`3024` :pr:`3030`\n- Allow `default` to be set on `Argument` for `nargs = -1`. :issue:`2164`\n :pr:`3030`\n- Show correct auto complete value for `nargs` option in combination with flag\n option :issue:`2813`\n- Show correct auto complete value for nargs option in combination with flag option :issue:`2813`\n- Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:`2995` :pr:`3013`\n- Lazily import `shutil`. :pr:`3023`\n- Properly forward exception information to resources registered with\n `click.core.Context.with_resource()`. :issue:`2447` :pr:`3058`\n- Fix regression related to EOF handling in CliRunner. :issue:`2939`:pr:`2940`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuOSIsInVwZGF0ZWRJblZlciI6IjQxLjExNi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/373\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Salt": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumFollowers": 0,
"NumFollowing": 1,
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumRepos": 3,
"NumMembers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"LowerName": "luke",
"Language": "en-US",
"IsRestricted": false,
"Email": "luke@tainton.uk",
"LoginSource": 2
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"Visibility": 0,
"IsRestricted": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumMembers": 0,
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Type": 0,
"Description": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginName": "",
"Location": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"CreatedUnix": 1735676388,
"ID": 5,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"IsActive": true,
"IsAdmin": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumRepos": 0,
"Theme": "gitea-auto"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
205,
75,
65,
101,
46,
191,
110,
249,
90,
153,
11,
227,
142,
70,
123,
98,
38,
144,
227,
130
],
"ResolvedID": null
}
},
"ID": [
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#361)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/361\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
]
]
}
}
},
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"Description": "",
"ContextHash": "",
"ID": 0,
"RepoID": 25,
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2",
"Description": "Successful in 38m8s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758155934,
"ID": 45058,
"Index": 8,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1758155934,
"RepoID": 25,
"Repo": "[*repo.Repository]"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0",
"Description": "Successful in 1m25s",
"Creator": "[*user.User]",
"RepoID": 25,
"State": "success",
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1757928268,
"UpdatedUnix": 1757928268,
"ID": 44704,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"AllowGitHook": false,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"LoginSource": 2,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"MustChangePassword": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"IsRestricted": false,
"AllowCreateOrganization": false,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Location": "",
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"Visibility": 1,
"Name": "luke",
"Salt": "",
"Language": "en-US",
"IsActive": true,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"Type": 0,
"Description": ""
},
"SigningEmail": "",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"IsAdmin": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumMembers": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"LoginName": "",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumTeams": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"ID": 5,
"UpdatedUnix": 1768857135,
"NumRepos": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UseCustomAvatar": true,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
233,
56,
47,
187,
159,
30,
71,
221,
38,
146,
162,
24,
110,
224,
79,
207,
225,
239,
83,
176
],
"ResolvedID": null
}
},
"ID": [
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#369)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/369\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
]
}
}
}
},
{
"Statuses": [
{
"CreatedUnix": 1757927632,
"Index": 2,
"State": "success",
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"Description": "Successful in 1m7s",
"Creator": "[*user.User]",
"UpdatedUnix": 1757927632,
"ID": 44687,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Location": "",
"MaxRepoCreation": -1,
"NumStars": 0,
"Visibility": 0,
"Name": "renovate-bot",
"LastRepoVisibility": false,
"NumTeams": 0,
"LoginName": "",
"Type": 0,
"Description": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"KeepActivityPrivate": false,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"IsRestricted": false,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"Language": "en-US"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#372)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/372\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
]
],
"Tree": {
"TreeCommon": {
"ID": [
161,
250,
245,
85,
155,
92,
60,
180,
42,
83,
168,
33,
232,
47,
34,
30,
120,
205,
122,
85
],
"ResolvedID": null
}
},
"ID": [
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
}
},
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"CreatedUnix": 1713634307,
"NumStars": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"MaxRepoCreation": -1,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumTeams": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Description": "",
"IsAdmin": true,
"IsRestricted": false,
"AllowImportLocal": false,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"NumFollowing": 1,
"LastRepoVisibility": false,
"NumFollowers": 0,
"PasswdHashAlgo": "",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Name": "luke",
"Language": "en-US",
"AllowGitHook": false
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": ""
}
},
"Status": {
"CreatedUnix": 0,
"Index": 0,
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"Creator": "[*user.User]",
"CreatorID": 0
}
},
{
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79"
},
"Statuses": [
{
"ID": 44637,
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79",
"Description": "Successful in 29m11s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1757896183,
"UpdatedUnix": 1757896183
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumStars": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"LoginType": 6,
"Type": 0,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumMembers": 0,
"ID": 3,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Language": "en-US",
"LastRepoVisibility": false,
"IsRestricted": false,
"Visibility": 1,
"MustChangePassword": false,
"Location": "",
"AllowCreateOrganization": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"NumFollowing": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Passwd": "",
"IsActive": true,
"LowerName": "luke",
"Salt": ""
},
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"IsAdmin": false,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"IsRestricted": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"NumFollowing": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"NumTeams": 0,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"KeepActivityPrivate": false,
"Type": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginSource": 0,
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1
},
"Commit": {
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.4 (#371)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.3` -> `==3.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjQxLjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/371\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
]
],
"Tree": {
"TreeCommon": {
"ID": [
176,
42,
26,
51,
178,
3,
106,
22,
134,
151,
203,
207,
61,
71,
151,
126,
205,
115,
190,
130
],
"ResolvedID": null
}
},
"ID": [
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3",
"Description": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757810006,
"UpdatedUnix": 1757810006,
"ID": 44484,
"Index": 11,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/570/jobs/0",
"Description": "Failing after 31m50s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"RepoID": 25,
"State": "failure",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77"
},
{
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 44538,
"RepoID": 25,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "Successful in 25s",
"CreatedUnix": 1757840494,
"UpdatedUnix": 1757840494,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"Description": "Successful in 7s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"ID": 44553,
"Index": 20,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"CreatorID": -2,
"CreatedUnix": 1757840827,
"UpdatedUnix": 1757840827,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/1"
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 44554,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1757841248,
"UpdatedUnix": 1757841248,
"Index": 21,
"RepoID": 25,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/4",
"Description": "Failing after 7m2s"
},
{
"State": "success",
"Description": "Successful in 6s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757841259,
"UpdatedUnix": 1757841259,
"ID": 44559,
"Index": 22,
"RepoID": 25,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/2",
"Context": "Release / Get Release ID (push)",
"Repo": "[*repo.Repository]"
},
{
"CreatorID": -2,
"CreatedUnix": 1757841288,
"UpdatedUnix": 1757841288,
"Index": 23,
"RepoID": 25,
"State": "failure",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "Failing after 24s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"ID": 44560,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 0,
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumRepos": 0,
"ID": 5,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Location": "",
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"LoginName": "",
"AllowCreateOrganization": false,
"NumFollowing": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"IsAdmin": false,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Language": "en-US"
},
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#368)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/368\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
]
],
"Tree": {
"TreeCommon": {
"ID": [
70,
63,
163,
243,
201,
255,
165,
210,
209,
76,
203,
37,
91,
176,
54,
61,
161,
113,
89,
136
],
"ResolvedID": null
}
},
"ID": [
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
]
}
},
"Verification": {
"CommittingUser": {
"NumFollowing": 1,
"NumTeams": 0,
"LoginName": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Theme": "tangerine-dream",
"IsAdmin": true,
"Type": 0,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"DiffViewStyle": "unified",
"Salt": "",
"AllowCreateOrganization": false,
"LoginSource": 2,
"Passwd": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"NumStars": 1,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Location": "",
"UseCustomAvatar": true,
"Name": "luke",
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LoginType": 6,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"Warning": false
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0",
"Description": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"State": "success",
"Description": "Successful in 1m51s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1757422529,
"UpdatedUnix": 1757422529,
"ID": 43939,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432",
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Language": "en-US",
"Description": "",
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"Visibility": 1,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumStars": 1,
"Type": 0,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Location": "",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"NumTeams": 0,
"NumMembers": 0,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"IsActive": true,
"AllowGitHook": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumStars": 0,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginName": "",
"Type": 0,
"Description": "",
"AllowImportLocal": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"Visibility": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": false
},
"Commit": {
"ID": [
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#367)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/367\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
223,
228,
2,
1,
182,
134,
1,
240,
255,
148,
155,
157,
143,
29,
227,
169,
166,
32,
41
],
"ResolvedID": null
}
}
}
}
}
},
{
"Status": {
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0
},
"Statuses": [
{
"ID": 43686,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"CreatorID": -2,
"CreatedUnix": 1757235700,
"UpdatedUnix": 1757235700,
"Index": 35,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/0",
"Description": "Successful in 44s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/4",
"Description": "Failing after 8m23s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1757236211,
"ID": 43696,
"Index": 39,
"RepoID": 25,
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Creator": "[*user.User]",
"UpdatedUnix": 1757236211
},
{
"ID": 43697,
"Index": 40,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Description": "Successful in 9m42s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757236284,
"UpdatedUnix": 1757236284
},
{
"CreatorID": -2,
"ID": 43698,
"Index": 41,
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Description": "Successful in 6s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1757236291,
"UpdatedUnix": 1757236291,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"Index": 42,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/3",
"Description": "Failing after 48s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatedUnix": 1757236345,
"UpdatedUnix": 1757236345,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 43699
},
{
"CreatorID": -2,
"CreatedUnix": 1757377042,
"UpdatedUnix": 1757377042,
"ID": 43862,
"Index": 46,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Description": "Successful in 16m29s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Type": 0,
"Salt": "",
"Language": "en-US",
"IsRestricted": false,
"NumRepos": 3,
"LowerName": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "luke",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"Visibility": 1
}
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"Type": 0,
"Location": "",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"UseCustomAvatar": true,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Name": "renovate-bot",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0
},
"Commit": {
"Parents": [
[
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
]
],
"Tree": {
"TreeCommon": {
"ID": [
111,
156,
174,
195,
238,
98,
46,
234,
188,
112,
66,
46,
136,
95,
104,
16,
216,
194,
131,
106
],
"ResolvedID": null
}
},
"ID": [
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.4.0 (#366)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.3.8` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.4.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0)\n\n##### What's Changed\n\n- feat: improve homebrew path detection by [@​daeho-ro](https://github.com/daeho-ro) in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n##### New Contributors\n\n- [@​daeho-ro](https://github.com/daeho-ro) made their first contribution in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44My4yIiwidXBkYXRlZEluVmVyIjoiNDEuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/366\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Statuses": [
{
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 42439,
"Index": 8,
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"Description": "Successful in 7m41s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1756339718,
"UpdatedUnix": 1756339718,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"Description": "",
"AllowCreateOrganization": false,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Passwd": "",
"IsActive": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Location": "",
"UpdatedUnix": 1776964991,
"Type": 0,
"ID": 3,
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"AllowGitHook": false,
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"UseCustomAvatar": true,
"NumStars": 1,
"Name": "luke",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsRestricted": false
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LoginSource": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"IsActive": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Language": "en-US",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"LoginType": 0,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"IsAdmin": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginName": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
104,
113,
72,
148,
213,
189,
217,
216,
35,
120,
106,
18,
160,
71,
142,
45,
61,
11,
149,
209
]
}
},
"ID": [
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#365)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/365\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "success",
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d"
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Description": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Index": 10,
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/0",
"Description": "Successful in 19s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1756026078,
"ID": 41913,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1756026078
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/1",
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)",
"ID": 41925,
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1756026116,
"UpdatedUnix": 1756026116,
"Index": 13
},
{
"Description": "Successful in 5s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1756026145,
"ID": 41929,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1756026145,
"Index": 14,
"Repo": "[*repo.Repository]",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5"
},
{
"Index": 15,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/4",
"Description": "Failing after 2m42s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1756026278,
"UpdatedUnix": 1756026278,
"ID": 41931,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"UpdatedUnix": 1756026307,
"State": "failure",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/3",
"Description": "Failing after 29s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatedUnix": 1756026307,
"ID": 41934,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1756080490,
"ID": 42074,
"Index": 18,
"Repo": "[*repo.Repository]",
"Description": "Successful in 7m12s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1756080490,
"RepoID": 25,
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"NumStars": 1,
"Passwd": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Name": "luke",
"Location": "",
"LastRepoVisibility": false,
"IsActive": true,
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumMembers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Type": 0,
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": true,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"LoginSource": 2
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 0,
"LoginName": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumTeams": 0,
"LastRepoVisibility": false,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"IsAdmin": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Location": "",
"MaxRepoCreation": -1,
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"LowerName": "renovate-bot"
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
]
],
"Tree": {
"TreeCommon": {
"ID": [
77,
3,
220,
26,
181,
200,
226,
220,
36,
183,
196,
82,
248,
210,
135,
74,
72,
103,
131,
2
],
"ResolvedID": null
}
},
"ID": [
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update dependency lazy-object-proxy to v1.12.0 (#364)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) ([changelog](https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html)) | `==1.11.0` -> `==1.12.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ionelmc/python-lazy-object-proxy (lazy-object-proxy)</summary>\n\n### [`v1.12.0`](https://github.com/ionelmc/python-lazy-object-proxy/blob/HEAD/CHANGELOG.rst#1120-2025-08-22)\n\n[Compare Source](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0)\n\n- Fixed testing issues when C extensions are not desired.\n Contributed by Michał Górny in `#​79 <https://github.com/ionelmc/python-lazy-object-proxy/pull/79>`\\_.\n- Added support for GraalPy.\n Contributed by Michael Šimáček in `#​87 <https://github.com/ionelmc/python-lazy-object-proxy/pull/87>`\\_.\n- Fixed testing issues on Python 3.14.\n Contributed by Michał Górny in `#​88 <https://github.com/ionelmc/python-lazy-object-proxy/pull/88>`\\_.\n- Modernized packaging to have metadata in `pyproject.toml`.\n- Added Python 3.14 wheels.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS42IiwidXBkYXRlZEluVmVyIjoiNDEuODEuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/364\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"Description": "Successful in 7m26s",
"Context": "Security / snyk (push)",
"CreatedUnix": 1755821309,
"UpdatedUnix": 1755821309,
"Repo": "[*repo.Repository]",
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 41618,
"Index": 8,
"RepoID": 25,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"CommittingUser": {
"MustChangePassword": false,
"LoginType": 6,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Location": "",
"Salt": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"ID": 3,
"KeepEmailPrivate": false,
"Language": "en-US",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Name": "luke",
"FullName": "Luke Tainton",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"PasswdHashAlgo": "",
"Description": "",
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Type": 0,
"IsAdmin": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"LoginSource": 2,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"IsActive": true,
"LoginName": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"Passwd": ""
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"IsActive": true,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"LastRepoVisibility": false,
"IsAdmin": false,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 0,
"Language": "en-US",
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"NumFollowing": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Type": 0
},
"Commit": {
"CommitMessage": "chore(deps): update dependency requests to v2.32.5 (#363)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | `==2.32.4` -> `==2.32.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/requests (requests)</summary>\n\n### [`v2.32.5`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2325-2025-08-18)\n\n[Compare Source](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)\n\n**Bugfixes**\n\n- The SSLContext caching feature originally introduced in 2.32.0 has created\n a new class of issues in Requests that have had negative impact across a number\n of use cases. The Requests team has decided to revert this feature as long term\n maintenance of it is proving to be unsustainable in its current iteration.\n\n**Deprecations**\n\n- Added support for Python 3.14.\n- Dropped support for Python 3.8 following its end of support.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43Ni4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/363\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
]
],
"Tree": {
"TreeCommon": {
"ID": [
44,
36,
244,
247,
15,
230,
228,
80,
118,
192,
178,
54,
211,
95,
216,
123,
118,
238,
0,
251
],
"ResolvedID": null
}
},
"ID": [
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"RepoID": 25,
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/0",
"Description": "Successful in 54s",
"Context": "Release / Tag release (push)",
"ID": 41041,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755421336,
"UpdatedUnix": 1755421336
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 11s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1755421376,
"UpdatedUnix": 1755421376,
"ID": 41053,
"Index": 19,
"RepoID": 25
},
{
"CreatorID": -2,
"CreatedUnix": 1755421409,
"UpdatedUnix": 1755421409,
"Index": 20,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"Description": "Successful in 10s",
"Context": "Release / Get Release ID (push)",
"ID": 41057,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]"
},
{
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 21,
"RepoID": 25,
"Description": "Successful in 5m59s",
"CreatorID": -2,
"CreatedUnix": 1755421729,
"UpdatedUnix": 1755421729,
"ID": 41064,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/3",
"Description": "Successful in 1m12s",
"Creator": "[*user.User]",
"Index": 22,
"Repo": "[*repo.Repository]",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1755421734,
"UpdatedUnix": 1755421734,
"ID": 41065,
"RepoID": 25,
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8"
},
{
"Description": "Successful in 9m31s",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1755562244,
"ID": 41250,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755562244,
"Index": 26,
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Description": "",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Passwd": "",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"LoginSource": 2,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"MustChangePassword": false,
"Location": "",
"Salt": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LastRepoVisibility": false,
"IsActive": true,
"NumTeams": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumMembers": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"MustChangePassword": false,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 0,
"NumRepos": 0,
"Type": 0,
"IsAdmin": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"ProhibitLogin": false,
"NumTeams": 0,
"Description": "",
"Visibility": 0,
"LowerName": "renovate-bot",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"ID": 5,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"AllowGitHook": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#360)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/360\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
181,
248,
58,
41,
23,
84,
159,
79,
138,
197,
166,
162,
191,
225,
128,
125,
199,
230,
238,
28
],
"ResolvedID": null
}
},
"ID": [
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Description": "",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Location": "",
"AllowGitHook": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"AllowCreateOrganization": false,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"ID": 3,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"AllowImportLocal": false,
"NumTeams": 0,
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Visibility": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsActive": true,
"NumStars": 1,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"NumMembers": 0,
"Type": 0,
"LoginType": 0,
"AllowCreateOrganization": false,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Visibility": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"IsAdmin": false,
"IsRestricted": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"NumRepos": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"MaxRepoCreation": -1
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#359)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/359\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
113,
206,
7,
148,
192,
103,
36,
23,
14,
217,
108,
83,
99,
166,
81,
142,
241,
25,
215
],
"ResolvedID": null
}
},
"ID": [
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
}
}
},
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"State": "success",
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1755028036,
"ID": 39583,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"UpdatedUnix": 1755028036,
"State": "success",
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Description": "Successful in 1m23s"
}
]
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LoginType": 6,
"Location": "",
"ID": 3,
"KeepEmailPrivate": false,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"PasswdHashAlgo": "",
"Language": "en-US",
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Salt": "",
"Description": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumFollowers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"NumRepos": 0,
"Visibility": 0,
"ID": 5,
"Language": "en-US",
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"LoginType": 0,
"Location": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumStars": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsActive": true
},
"Commit": {
"CommitMessage": "fix(deps): update dependency wrapt to v1.17.3 (#362)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) ([changelog](https://wrapt.readthedocs.io/en/latest/changes.html)) | `==1.17.2` -> `==1.17.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>GrahamDumpleton/wrapt (wrapt)</summary>\n\n### [`v1.17.3`](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n[Compare Source](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/362\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
]
],
"Tree": {
"TreeCommon": {
"ID": [
252,
35,
3,
134,
242,
176,
9,
40,
217,
43,
206,
2,
102,
196,
245,
51,
192,
219,
1,
194
],
"ResolvedID": null
}
},
"ID": [
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Context": "",
"CreatorID": 0,
"Repo": "[*repo.Repository]",
"SHA": "606db5050913568178b87b211f2027d063781449",
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"State": "success",
"SHA": "606db5050913568178b87b211f2027d063781449",
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m21s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1755027818,
"UpdatedUnix": 1755027818,
"ID": 39575,
"Index": 2,
"RepoID": 25
}
]
},
{
"Status": {
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 25,
"State": "success",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Description": "Successful in 29s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1754816460,
"UpdatedUnix": 1754816460,
"ID": 39105,
"Index": 6,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25
},
{
"Index": 11,
"RepoID": 25,
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754816505,
"UpdatedUnix": 1754816505,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/1",
"Description": "Successful in 8s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"ID": 39118
},
{
"CreatorID": -2,
"CreatedUnix": 1754816534,
"UpdatedUnix": 1754816534,
"ID": 39123,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/2",
"Description": "Successful in 8s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"State": "success",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"CreatorID": -2,
"UpdatedUnix": 1754816773,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754816773,
"ID": 39131,
"Index": 13,
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/4",
"Description": "Successful in 4m29s"
},
{
"ID": 39132,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"Description": "Successful in 1m3s",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 14,
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatedUnix": 1754816788,
"UpdatedUnix": 1754816788
},
{
"Description": "Successful in 8m31s",
"Creator": "[*user.User]",
"ID": 39389,
"Index": 18,
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1754957350,
"UpdatedUnix": 1754957350,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"DiffViewStyle": "unified",
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"Location": "",
"AllowImportLocal": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"IsAdmin": true,
"IsRestricted": false,
"MaxRepoCreation": -1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"Description": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"LoginType": 6,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false
}
},
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"Language": "en-US",
"IsRestricted": false,
"NumStars": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Location": "",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"IsActive": true,
"LoginName": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumRepos": 0
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency charset-normalizer to v3.4.3 (#358)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) ([changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)) | `==3.4.2` -> `==3.4.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>jawah/charset_normalizer (charset-normalizer)</summary>\n\n### [`v3.4.3`](https://github.com/jawah/charset_normalizer/blob/HEAD/CHANGELOG.md#343-2025-08-09)\n\n[Compare Source](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3)\n\n##### Changed\n\n- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. ([#​595](https://github.com/jawah/charset_normalizer/issues/595)) ([#​583](https://github.com/jawah/charset_normalizer/issues/583))\n- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. ([#​391](https://github.com/jawah/charset_normalizer/issues/391))\n\n##### Added\n\n- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\n- Support for Python 3.14\n\n##### Fixed\n\n- sdist archive contained useless directories.\n- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. ([#​633](https://github.com/jawah/charset_normalizer/issues/633))\n\n##### Misc\n\n- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\n Each published wheel comes with its SBOM. We choose CycloneDX as the format.\n- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC4yIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/358\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
38,
234,
111,
189,
233,
242,
117,
101,
31,
155,
75,
4,
216,
224,
48,
242,
198,
171,
210
],
"ResolvedID": null
}
},
"ID": [
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"State": "success",
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 38929,
"Index": 4,
"RepoID": 25,
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"Description": "Successful in 4m58s",
"Context": "Security / snyk (push)",
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754697938,
"UpdatedUnix": 1754697938
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"NumFollowing": 1,
"NumTeams": 0,
"Name": "luke",
"Salt": "",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"ID": 3,
"LoginSource": 2,
"Location": "",
"UpdatedUnix": 1776964991,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"NumStars": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Passwd": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"AllowGitHook": false,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginType": 6
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"UseCustomAvatar": true,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"Language": "en-US",
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumMembers": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LoginName": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"NumTeams": 0,
"Name": "renovate-bot",
"IsActive": true,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginType": 0,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ID": 5,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9"
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#357)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/357\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
]
],
"Tree": {
"TreeCommon": {
"ID": [
191,
248,
238,
5,
150,
100,
198,
234,
222,
114,
114,
201,
159,
35,
106,
112,
135,
152,
194,
184
],
"ResolvedID": null
}
},
"ID": [
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"Description": ""
},
"Statuses": [
{
"ID": 38810,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatedUnix": 1754611653,
"UpdatedUnix": 1754611653,
"Index": 12,
"State": "success",
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0",
"Description": "Successful in 6m59s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginType": 6,
"ProhibitLogin": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"Description": "",
"IsAdmin": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumRepos": 3,
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"ID": 3,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"KeepEmailPrivate": false,
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"NumTeams": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsActive": true,
"RepoAdminChangeTeamAccess": false
},
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"CreatedUnix": 1735676388,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"LoginSource": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Visibility": 0,
"Type": 0,
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"IsAdmin": false,
"LoginType": 0,
"ID": 5,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Name": "renovate-bot",
"Location": "",
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsRestricted": false,
"Theme": "gitea-auto"
},
"Commit": {
"ID": [
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.8.3 (#356)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.7.14` -> `==2025.8.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.8.3`](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/356\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
255,
121,
156,
108,
235,
30,
68,
112,
87,
74,
175,
22,
214,
255,
28,
149,
116,
235,
168
],
"ResolvedID": null
}
}
}
}
}
}
],
"Tags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"BranchesCount": 1,
"EnableActions": true,
"RawPath": "/repos/pypilot/raw/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"ViteModeIsDev": false,
"RepoName": "pypilot",
"BaseBranch": "v1.8.9",
"EnableSwagger": true,
"Owner": {
"NumFollowing": 0,
"Visibility": 0,
"LoginSource": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"AvatarEmail": "",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "repos",
"EmailNotificationsPreference": "",
"LoginType": 0,
"Location": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"PasswdHashAlgo": "",
"Type": 1,
"Website": "",
"IsActive": true,
"NumStars": 0,
"NumMembers": 7,
"ID": 13,
"LoginName": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumRepos": 27,
"LowerName": "repos",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Language": "",
"LastLoginUnix": 0,
"ProhibitLogin": false,
"NumTeams": 6,
"Description": "",
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"Email": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"LastRepoVisibility": false,
"IsAdmin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"FullName": "",
"NumFollowers": 0
},
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"IsSplitStyle": false,
"ShowForkModal": false,
"PageIsComparePull": false,
"CanSignedUserFork": false,
"BeforeRawPath": "/repos/pypilot/raw/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"Branches": [
"main"
],
"ShowFooterVersion": true,
"CanWritePulls": false,
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"Reponame": "pypilot",
"SignedUserID": 0
},
"Consts": {
"RepoUnitTypeIssues": 2,
"RepoUnitTypeProjects": 8,
"RepoUnitTypeCode": 1,
"RepoUnitTypePullRequests": 3,
"RepoUnitTypeExternalWiki": 6,
"RepoUnitTypeActions": 10,
"RepoUnitTypeReleases": 4,
"RepoUnitTypeWiki": 5,
"RepoUnitTypeExternalTracker": 7,
"RepoUnitTypePackages": 9
},
"_ctx": "[dumped]",
"_req": {
"TransferEncoding": null,
"Form": {
"style": [
"unified"
],
"whitespace": [
"ignore-eol"
]
},
"MultipartForm": "[*multipart.Form]",
"RequestURI": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c?style=unified&whitespace=ignore-eol",
"ProtoMajor": 1,
"ProtoMinor": 1,
"ContentLength": 0,
"TLS": "[*tls.ConnectionState]",
"Response": "[*http.Response]",
"Close": false,
"PostForm": {},
"Trailer": {},
"Cancel": "[<-chan struct {}]",
"Method": "GET",
"Proto": "HTTP/1.1",
"Header": {
"User-Agent": [
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
],
"Cookie": [
"i_like_gitea=60f3795e60af6db4"
],
"X-Forwarded-Host": [
"git.tainton.uk"
],
"X-Forwarded-Proto": [
"https"
],
"X-Forwarded-Port": [
"443"
],
"Accept": [
"*/*"
],
"Accept-Encoding": [
"gzip, br, zstd, deflate"
],
"X-Forwarded-Server": [
"6ab30ac39153"
],
"X-Forwarded-For": [
"216.73.216.219"
],
"X-Real-Ip": [
"216.73.216.219"
]
},
"Host": "git.tainton.uk",
"RemoteAddr": "216.73.216.219:0",
"Pattern": "/{username}/{reponame}/compare/*",
"URL": {
"Path": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"Fragment": "",
"RawPath": "",
"ForceQuery": false,
"OmitHost": false,
"User": "[*url.Userinfo]",
"Host": "",
"RawQuery": "style=unified&whitespace=ignore-eol",
"RawFragment": "",
"Scheme": "",
"Opaque": ""
},
"Body": {},
"GetBody": "[func() (io.ReadCloser, error)]"
},
"Locale": {
"LangName": "English",
"Locale": {},
"Lang": "en-US"
},
"AvatarUtils": {},
"RenderUtils": {}
},
"Flash": {
"SuccessMsg": "",
"DataStore": "[dumped]",
"Values": {},
"ErrorMsg": "",
"WarningMsg": "",
"InfoMsg": ""
},
"Link": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"IsBasicAuth": false,
"Base": {
"Locale": {
"Locale": {},
"Lang": "en-US",
"LangName": "English"
},
"RequestContext": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {
"Context": {}
}
}
}
}
}
}
}
}
}
}
}
}
}
},
"RequestDataStore": {}
}
}
}
}
},
"RequestDataStore": {}
},
"Resp": {
"ResponseWriter": {}
},
"Req": {
"Response": "[*http.Response]",
"Method": "GET",
"Header": {
"X-Forwarded-Port": [
"443"
],
"User-Agent": [
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
],
"Accept-Encoding": [
"gzip, br, zstd, deflate"
],
"X-Forwarded-Host": [
"git.tainton.uk"
],
"X-Forwarded-Server": [
"6ab30ac39153"
],
"X-Forwarded-For": [
"216.73.216.219"
],
"X-Real-Ip": [
"216.73.216.219"
],
"Accept": [
"*/*"
],
"Cookie": [
"i_like_gitea=60f3795e60af6db4"
],
"X-Forwarded-Proto": [
"https"
]
},
"RemoteAddr": "216.73.216.219:0",
"URL": {
"ForceQuery": false,
"OmitHost": false,
"Scheme": "",
"Path": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"RawQuery": "style=unified&whitespace=ignore-eol",
"Opaque": "",
"User": "[*url.Userinfo]",
"Host": "",
"Fragment": "",
"RawPath": "",
"RawFragment": ""
},
"ProtoMajor": 1,
"ContentLength": 0,
"Close": false,
"Host": "git.tainton.uk",
"PostForm": {},
"TLS": "[*tls.ConnectionState]",
"Cancel": "[<-chan struct {}]",
"Proto": "HTTP/1.1",
"ProtoMinor": 1,
"Body": {},
"TransferEncoding": null,
"MultipartForm": "[*multipart.Form]",
"Trailer": {},
"RequestURI": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c?style=unified&whitespace=ignore-eol",
"Pattern": "/{username}/{reponame}/compare/*",
"GetBody": "[func() (io.ReadCloser, error)]",
"Form": {
"whitespace": [
"ignore-eol"
],
"style": [
"unified"
]
}
},
"Data": {
"IsAttachmentEnabled": true,
"PageIsComparePull": false,
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"BaseRepo": {
"ObjectFormatName": "sha1",
"OwnerID": 13,
"NumForks": 0,
"ForkID": 0,
"Topics": null,
"TrustModel": 0,
"UpdatedUnix": 1776589233,
"ArchivedUnix": 0,
"DefaultBranch": "main",
"DefaultWikiBranch": "main",
"NumOpenIssues": 1,
"NumOpenMilestones": 0,
"NumActionRuns": 984,
"IsPrivate": false,
"IsArchived": false,
"IsMirror": false,
"Owner": {
"LoginType": 0,
"Website": "",
"IsActive": true,
"NumFollowers": 0,
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"ID": 13,
"Passwd": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"AvatarEmail": "",
"NumTeams": 6,
"Language": "",
"IsRestricted": false,
"NumFollowing": 0,
"Visibility": 0,
"FullName": "",
"Email": "",
"EmailNotificationsPreference": "",
"CreatedUnix": 1739049474,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumRepos": 27,
"DiffViewStyle": "",
"Name": "repos",
"PasswdHashAlgo": "",
"LoginName": "",
"Type": 1,
"Location": "",
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginSource": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumMembers": 7,
"Theme": "tangerine-dream",
"LowerName": "repos",
"MustChangePassword": false,
"UpdatedUnix": 1776538024,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true
},
"OriginalServiceType": 2,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumClosedActionRuns": 984,
"Status": 0,
"BaseRepo": "[*repo.Repository]",
"Size": 2465934,
"CreatedUnix": 1737063265,
"ID": 25,
"NumWatches": 5,
"NumClosedMilestones": 0,
"IsEmpty": false,
"IsFork": false,
"IsTemplate": false,
"CloseIssuesViaCommitInAnyBranch": true,
"Avatar": "",
"LowerName": "pypilot",
"NumOpenProjects": 0,
"NumOpenActionRuns": 0,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"RepoID": 25,
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853
},
{
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
}
},
{
"RepoID": 25,
"Type": 3,
"Config": {
"AllowFastForwardOnly": false,
"AutodetectManualMerge": true,
"AllowSquash": true,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857
}
],
"PrimaryLanguage": "[*repo.LanguageStat]",
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Website": "",
"NumStars": 0,
"NumIssues": 2,
"NumPulls": 436,
"NumClosedPulls": 436,
"GitSize": 2465934,
"OwnerName": "repos",
"TemplateID": 0,
"LFSSize": 0,
"IsFsckEnabled": true,
"NumProjects": 0,
"NumClosedProjects": 0,
"Name": "pypilot",
"Description": "",
"NumClosedIssues": 1,
"NumOpenPulls": 0,
"NumMilestones": 0
},
"ShowMilestonesDashboardPage": true,
"UploadRemoveUrl": "/repos/pypilot/issues/attachments/remove",
"BeforeCommitID": "527e588a24fba8d0bbb0c9f23f4998bd889b90b6",
"title": "fix(deps): update dependency certifi to v2025.8.3 (#356)",
"HeadBranches": [
"main"
],
"IsProjectsEnabled": false,
"IsEmptyRepo": false,
"PageIsViewCode": true,
"FileIconPoolHTML": "<div class=\"svg-icon-container\"><svg id=\"svg-mfi-renovate\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ffb300' d='m13.061 3.722-.707-.707a1 1 0 0 0-1.414 0L2.454 11.5a1 1 0 0 0 0 1.414l2.829 2.829a1 1 0 0 0 1.414 0l8.485-8.486a1 1 0 0 0 0-1.414l-.707-.707.707-.707 2.829 2.828-7.071 7.071 7.778 7.779a1 1 0 0 0 1.414 0l1.414-1.415a1 1 0 0 0 0-1.414l-6.364-6.364 5.657-5.657L15.182 1.6z'/></svg><svg id=\"svg-mfi-uv\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 16 16'><path fill='#e040fb' d='M2 2v11c0 .5.5 1 1 1h8c.5 0 1-.5 1-1h1v1h1V2H8v8H7V2z'/></svg><svg id=\"svg-mfi-yaml\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#ff5252' d='M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z'/></svg><svg id=\"svg-mfi-docker\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 24 24'><path fill='#0288d1' d='M21.81 10.25c-.06-.04-.56-.43-1.64-.43-.28 0-.56.03-.84.08-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17-.18.27c-.24.36-.43.77-.51 1.19-.2.8-.08 1.56.33 2.21-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63 0 1.15.18 2.3.58 3.38.45 1.19 1.13 2.07 2 2.61.98.6 2.59.94 4.42.94.79 0 1.61-.07 2.42-.22 1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16'/></svg><svg id=\"svg-mfi-python-misc\" class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\" viewBox='0 0 32 32'><path fill='#757575' d='M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h16a2 2 0 0 0 2-2V11Zm3 22H6v-2h12Zm0-4H6v-2h12Zm0-4H6v-2h12Zm-4-4V4l8 8Z'/><path fill='#fbc02d' d='M30.714 16H28v5h-9v7.714A1.286 1.286 0 0 0 20.286 30h6.428A1.286 1.286 0 0 0 28 28.714V26h-6v-1h8.714A1.286 1.286 0 0 0 32 23.714v-6.428A1.286 1.286 0 0 0 30.714 16M24 28h3v1h-3Z' style='isolation:isolate'/><path fill='#0288d1' d='M25.714 12h-6.428A1.286 1.286 0 0 0 18 13.286V16h6v1h-8.714A1.286 1.286 0 0 0 14 18.286v6.428A1.286 1.286 0 0 0 15.286 26H18v-6h9v-6.714A1.286 1.286 0 0 0 25.714 12M22 14h-3v-1h3Z' style='isolation:isolate'/></svg></div>",
"EnableFeed": true,
"NumTags": 42,
"Link": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"HasIssuesOrPullsWritePermission": false,
"RunModeIsProd": false,
"Reponame": "pypilot",
"PullRequestCtx": {},
"UploadMaxSize": 100,
"BeforeRawPath": "/repos/pypilot/raw/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"IsDiffCompare": true,
"CompareInfo": "[dumped]",
"CanSignedUserFork": false,
"UploadUrl": "/repos/pypilot/issues/attachments",
"RepoName": "pypilot",
"PullRequestWorkInProgressPrefixes": [
"WIP:",
"[WIP]"
],
"Owner": {
"LoginType": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"FullName": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"LastLoginUnix": 0,
"AvatarEmail": "",
"UseCustomAvatar": true,
"NumStars": 0,
"NumRepos": 27,
"LoginSource": 0,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "",
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"ProhibitLogin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"Name": "repos",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"CreatedUnix": 1739049474,
"LowerName": "repos",
"Email": "",
"LoginName": "",
"Location": "",
"Description": "",
"ID": 13,
"Type": 1,
"UpdatedUnix": 1776538024,
"NumTeams": 6,
"NumMembers": 7
},
"ShowRegistrationButton": false,
"HeadTags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"PageGlobalData": {
"IsSigned": false,
"IsSiteAdmin": false,
"GetNotificationUnreadCount": "[func() int64]",
"GetActiveStopwatch": "[func() *common.StopwatchTmplInfo]"
},
"Username": "repos",
"UserAndOrgForks": null,
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"HeadBranch": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"IsSplitStyle": false,
"BodyQuery": "",
"Tags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"ShowTwoFactorRequiredMessage": false,
"BaseCompareRepo": {
"CreatedUnix": 1737063265,
"NumOpenMilestones": 0,
"Description": "",
"NumStars": 0,
"NumClosedMilestones": 0,
"IsMirror": false,
"TrustModel": 0,
"NumOpenProjects": 0,
"ID": 25,
"NumForks": 0,
"NumOpenIssues": 1,
"NumOpenPulls": 0,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"Type": 2,
"Config": {
"EnableDependencies": true,
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {}
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704
},
{
"RepoID": 25,
"Type": 3,
"Config": {
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"DefaultDeleteBranchAfterMerge": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857
}
],
"IsTemplate": false,
"Topics": null,
"NumOpenActionRuns": 0,
"IsPrivate": false,
"Size": 2465934,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"UpdatedUnix": 1776589233,
"Owner": {
"FullName": "",
"KeepEmailPrivate": false,
"Passwd": "",
"Description": "",
"LastRepoVisibility": false,
"AvatarEmail": "",
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"Location": "",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"Email": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 0,
"Website": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Language": "",
"NumStars": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "",
"UpdatedUnix": 1776538024,
"NumFollowers": 0,
"NumMembers": 7,
"KeepActivityPrivate": false,
"ID": 13,
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 27,
"LoginSource": 0,
"Type": 1,
"Salt": "b7ae788249c01a123b005da3b594e807",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"IsActive": true,
"AllowGitHook": false,
"Visibility": 0,
"LowerName": "repos",
"Name": "repos",
"NumFollowing": 0,
"NumTeams": 6
},
"NumIssues": 2,
"PrimaryLanguage": "[*repo.LanguageStat]",
"ObjectFormatName": "sha1",
"ArchivedUnix": 0,
"NumProjects": 0,
"NumClosedProjects": 0,
"OwnerID": 13,
"LowerName": "pypilot",
"Website": "",
"OriginalServiceType": 2,
"DefaultWikiBranch": "main",
"NumPulls": 436,
"DefaultBranch": "main",
"NumClosedPulls": 436,
"NumMilestones": 0,
"IsEmpty": false,
"IsArchived": false,
"ForkID": 0,
"TemplateID": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"OwnerName": "repos",
"Name": "pypilot",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumWatches": 5,
"NumClosedIssues": 1,
"IsFork": false,
"BaseRepo": "[*repo.Repository]",
"GitSize": 2465934,
"NumActionRuns": 984,
"NumClosedActionRuns": 984,
"Status": 0,
"LFSSize": 0,
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"Avatar": ""
},
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git",
"Tea": "tea clone repos/pypilot"
},
"SourcePath": "/repos/pypilot/src/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"EnableOpenIDSignIn": false,
"RawPath": "/repos/pypilot/raw/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"UploadMaxFiles": 5,
"DisableStars": false,
"CanWritePulls": false,
"Title": "Comparing 527e588a24..737c4edf2b",
"CloneButtonShowSSH": false,
"BranchesCount": 1,
"content": "",
"SignedUserID": 0,
"WhitespaceBehavior": "ignore-eol",
"IsLandingPageOrganizations": false,
"DisableMigrations": false,
"ShowFooterVersion": true,
"ContextUser": {
"Website": "",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumMembers": 7,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"LoginType": 0,
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"Name": "repos",
"EmailNotificationsPreference": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"AvatarEmail": "",
"Email": "",
"CreatedUnix": 1739049474,
"IsActive": true,
"NumRepos": 27,
"Theme": "tangerine-dream",
"Passwd": "",
"Type": 1,
"LastRepoVisibility": false,
"NumFollowing": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginName": "",
"Description": "",
"LastLoginUnix": 0,
"AllowGitHook": false,
"NumFollowers": 0,
"PasswdHashAlgo": "",
"Location": "",
"UpdatedUnix": 1776538024,
"NumTeams": 6,
"ID": 13,
"FullName": "",
"KeepEmailPrivate": false,
"LoginSource": 0,
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"LowerName": "repos"
},
"UploadLinkUrl": "/repos/pypilot/issues/attachments",
"EnableActions": true,
"RepoCloneLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git",
"Tea": "tea clone repos/pypilot"
},
"CanWriteCode": false,
"TemplateLoadTimes": "[func() string]",
"PageStartTime": {},
"ExpandNewPrForm": false,
"FeedURL": "/repos/pypilot",
"ManifestData": "application/json;base64,eyJuYW1lIjoiR2l0ZWEiLCJzaG9ydF9uYW1lIjoiR2l0ZWEiLCJzdGFydF91cmwiOiJodHRwczovL2dpdC50YWludG9uLnVrLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC50YWludG9uLnVrL2Fzc2V0cy9pbWcvbG9nby5zdmciLCJ0eXBlIjoiaW1hZ2Uvc3ZnK3htbCIsInNpemVzIjoiNTEyeDUxMiJ9XX0=",
"CreateCsvDiff": "[func(*gitdiff.DiffFile, *git.Blob, *git.Blob) repo.CsvDiffResult]",
"ShowForkModal": false,
"RepoSearchEnabled": true,
"PageTitleCommon": "pypilot - Gitea",
"Diff": {
"Start": "",
"End": "",
"Files": [
{
"EntryMode": "",
"IsDeleted": false,
"IsRenamed": true,
"Sections": [
{
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows-disabled/security.yml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -25,7 +25,7 @@ jobs:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"LeftIdx": 26,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Checkout repo",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.1",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " - name: Snyk"
},
{
"Content": " uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1
}
],
"FileName": ".gitea/workflows-disabled/security.yml"
}
],
"IsVendored": false,
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"Addition": 1,
"Type": 4,
"OldEntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsLFSFile": false,
"IsProtected": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"IsSubmodule": false,
"Deletion": 1,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Name": ".gitea/workflows-disabled/security.yml",
"OldName": ".gitea/workflows/security.yml"
},
{
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsProtected": false,
"OldName": ".gitea/workflows/ci.yml",
"IsBin": false,
"IsLFSFile": false,
"IsGenerated": false,
"IsVendored": false,
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Addition": 22,
"EntryMode": "",
"IsDeleted": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"Deletion": 22,
"Type": 2,
"IsRenamed": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -12,12 +12,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 12,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 12
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest"
},
{
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0
},
{
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 14,
"Match": 0,
"Type": 1
},
{
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17
},
{
"LeftIdx": 18,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 19,
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " - name: Run Hadolint",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- uses: hadolint/hadolint-action@v3.1.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": 11,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 20,
"Match": 10,
"Type": 2,
"Content": "+ uses: hadolint/hadolint-action@v3.3.0",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21
},
{
"Type": 1,
"Content": " dockerfile: Dockerfile",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 22,
"Match": 0
},
{
"Content": " output-file: hadolint.out",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23,
"RightIdx": 23,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -25,12 +25,12 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 23,
"LastRightIdx": 23,
"LeftIdx": 25,
"RightIdx": 25,
"LeftHunkSize": 12,
"RightHunkSize": 12,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 25,
"Match": 0,
"Type": 1,
"Content": " no-fail: true",
"Comments": null
},
{
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 26
},
{
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27
},
{
"LeftIdx": 28,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/setup-python@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ uses: actions/setup-python@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28,
"Match": 4
},
{
"LeftIdx": 29,
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- python-version: 3.13"
},
{
"Type": 2,
"Content": "+ python-version: 3.14",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": 7
},
{
"LeftIdx": 31,
"RightIdx": 31,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " - name: uv cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 32,
"Match": 0
},
{
"LeftIdx": 33,
"RightIdx": 0,
"Match": 12,
"Type": 3,
"Content": "- uses: actions/cache@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": 11,
"Type": 2,
"Content": "+ uses: actions/cache@v5"
},
{
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 34,
"Match": 0,
"Type": 1
},
{
"Content": " path: /tmp/.uv-cache",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35,
"RightIdx": 35,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 36,
"RightIdx": 36,
"Match": 0,
"Type": 1,
"Content": " key: uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -61,19 +61,19 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 36,
"LastRightIdx": 36,
"LeftIdx": 61,
"RightIdx": 61,
"LeftHunkSize": 19,
"RightHunkSize": 19,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml"
}
},
{
"Content": " # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 61,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0
},
{
"RightIdx": 63,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63
},
{
"LeftIdx": 64,
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65
},
{
"Type": 3,
"Content": "- uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 11
},
{
"Type": 3,
"Content": "- mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 0,
"Match": 12
},
{
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- mv uv.lock uv.lock.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68
},
{
"RightIdx": 64,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 65,
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ # uv pip freeze > requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 66,
"Match": 6
},
{
"RightIdx": 67,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml pyproject.toml.bak",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock uv.lock.bak"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 69,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 70,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- - name: Snyk SAST Scan",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- uses: snyk/actions/python@master",
"Comments": null
},
{
"Match": 24,
"Type": 3,
"Content": "- env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72,
"RightIdx": 0
},
{
"LeftIdx": 73,
"RightIdx": 0,
"Match": 25,
"Type": 3,
"Content": "- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 26,
"Type": 3,
"Content": "- with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- # command: snyk"
},
{
"Match": 28,
"Type": 3,
"Content": "- args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 76,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 70,
"Match": 15,
"Type": 2,
"Content": "+ # - name: Snyk SAST Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 16,
"Type": 2,
"Content": "+ # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 71
},
{
"Content": "+ # env:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72,
"Match": 17,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 73,
"Match": 18,
"Type": 2,
"Content": "+ # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 19,
"Type": 2,
"Content": "+ # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 75,
"Match": 20,
"Type": 2,
"Content": "+ # # command: snyk"
},
{
"Type": 2,
"Content": "+ # args: snyk code test #--all-projects --exclude=.archive",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 76,
"Match": 21
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77,
"RightIdx": 77,
"Match": 0
},
{
"RightIdx": 78,
"Match": 0,
"Type": 1,
"Content": " # - name: Snyk Vulnerability Scan",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78
},
{
"Type": 1,
"Content": " # uses: snyk/actions/python@master",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 79,
"Match": 0
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"Match": 0,
"Type": 4,
"Content": "@@ -84,8 +84,8 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightIdx": 84,
"LeftHunkSize": 8,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 79,
"LastRightIdx": 79,
"LeftIdx": 84
},
"LeftIdx": 0,
"RightIdx": 0
},
{
"LeftIdx": 84,
"RightIdx": 84,
"Match": 0,
"Type": 1,
"Content": " # command: snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " # args: test --all-projects",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85,
"RightIdx": 85,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 86,
"RightIdx": 86
},
{
"LeftIdx": 87,
"RightIdx": 0,
"Match": 9,
"Type": 3,
"Content": "- - name: Reverse set up environment for Snyk",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 88,
"RightIdx": 0,
"Match": 10,
"Type": 3,
"Content": "- run: |",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89,
"RightIdx": 0,
"Match": 11,
"Type": 3,
"Content": "- rm -f requirements.txt"
},
{
"Match": 12,
"Type": 3,
"Content": "- mv pyproject.toml.bak pyproject.toml",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- mv uv.lock.bak uv.lock",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 91,
"RightIdx": 0,
"Match": 13
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": 4,
"Type": 2,
"Content": "+ # - name: Reverse set up environment for Snyk"
},
{
"Match": 5,
"Type": 2,
"Content": "+ # run: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 88
},
{
"Content": "+ # rm -f requirements.txt",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 89,
"Match": 6,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 7,
"Type": 2,
"Content": "+ # mv pyproject.toml.bak pyproject.toml",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": 8,
"Type": 2,
"Content": "+ # mv uv.lock.bak uv.lock"
}
]
},
{
"FileName": ".gitea/workflows/ci.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/ci.yml",
"LastLeftIdx": 0,
"LastRightIdx": 91,
"LeftIdx": 92,
"RightIdx": 92,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null
}
}
]
}
],
"IsIncomplete": false,
"Name": ".gitea/workflows/ci.yml",
"OldEntryMode": ""
},
{
"IsGenerated": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Deletion": 1,
"EntryMode": "",
"IsCreated": false,
"IsDeleted": false,
"Sections": [
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -12,6 +12,6 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 12,
"RightIdx": 12,
"LeftHunkSize": 6,
"RightHunkSize": 6,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 0
}
},
{
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1,
"Content": " name: Validate PR Title",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 13,
"RightIdx": 13,
"Match": 0,
"Type": 1,
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"Match": 5,
"Type": 3,
"Content": "- - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": 4,
"Type": 2,
"Content": "+ - uses: https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0",
"Comments": null
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16,
"RightIdx": 16,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " commit-message: ${{ gitea.event.pull_request.title }}",
"Comments": null
}
]
},
{
"FileName": ".gitea/workflows/conventional-commit.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 17,
"LeftIdx": 18,
"RightIdx": 18,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/conventional-commit.yml",
"LastLeftIdx": 17
}
}
]
}
],
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"Name": ".gitea/workflows/conventional-commit.yml",
"Type": 2,
"IsBin": false,
"IsSubmodule": false,
"IsIncompleteLineTooLong": false,
"Addition": 1,
"OldEntryMode": "",
"IsIncomplete": false,
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"OldName": ".gitea/workflows/conventional-commit.yml",
"IsLFSFile": false,
"IsRenamed": false
},
{
"OldEntryMode": "",
"IsDeleted": false,
"IsLFSFile": false,
"IsRenamed": false,
"Sections": [
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Content": "@@ -45,7 +45,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 0,
"LeftIdx": 45,
"RightIdx": 45,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 0
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": " runs-on: ubuntu-latest",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 45,
"RightIdx": 45,
"Match": 0,
"Type": 1
},
{
"Type": 1,
"Content": " steps:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46,
"RightIdx": 46,
"Match": 0
},
{
"Type": 1,
"Content": " - name: Check out repository code",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 47,
"Match": 0
},
{
"Content": "- uses: actions/checkout@v4.2.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 49,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50,
"RightIdx": 50,
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}"
},
{
"LeftIdx": 51,
"RightIdx": 51,
"Match": 0,
"Type": 1,
"Content": " # - name: Setup Python",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -53,7 +53,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 51,
"LastRightIdx": 51,
"LeftIdx": 53,
"RightIdx": 53,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml"
}
},
{
"Type": 1,
"Content": " # with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " # python-version: \"3.13\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 54
},
{
"Content": " - name: Install uv",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 55,
"Match": 0,
"Type": 1
},
{
"Match": 5,
"Type": 3,
"Content": "- uses: astral-sh/setup-uv@v6",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56,
"RightIdx": 0
},
{
"Match": 4,
"Type": 2,
"Content": "+ uses: astral-sh/setup-uv@v7",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 56
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 57,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"LeftIdx": 58,
"RightIdx": 58,
"Match": 0,
"Type": 1,
"Content": " enable-cache: true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 59,
"Match": 0,
"Type": 1,
"Content": " cache-dependency-glob: \"uv.lock\"",
"Comments": null
}
],
"FileName": ".gitea/workflows/release.yml"
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -125,7 +125,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 59,
"LastRightIdx": 59,
"LeftIdx": 125,
"RightIdx": 125,
"LeftHunkSize": 7,
"RightHunkSize": 7
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " REPO: ${{ gitea.repository }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 125,
"RightIdx": 125,
"Match": 0
},
{
"LeftIdx": 126,
"RightIdx": 126,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " - name: Check out repository",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 127,
"RightIdx": 127,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 128,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: actions/checkout@v4.2.2"
},
{
"LeftIdx": 0,
"RightIdx": 128,
"Match": 4,
"Type": 2,
"Content": "+ uses: actions/checkout@v6.0.2",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 129,
"RightIdx": 129,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 130,
"RightIdx": 130,
"Match": 0,
"Type": 1,
"Content": " fetch-depth: 0",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 131,
"RightIdx": 131,
"Match": 0,
"Type": 1,
"Content": " ref: ${{ needs.tag.outputs.tag_name }}",
"Comments": null
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -134,14 +134,14 @@ jobs:",
"Comments": null,
"SectionInfo": {
"RightHunkSize": 14,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 131,
"LastRightIdx": 131,
"LeftIdx": 134,
"RightIdx": 134,
"LeftHunkSize": 14
}
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 134,
"Match": 0,
"Type": 1,
"Content": " uses: docker/setup-buildx-action@v3",
"Comments": null
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 135,
"RightIdx": 135,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 136,
"RightIdx": 136,
"Match": 0,
"Type": 1,
"Content": " - name: Log in to Gitea Container Registry"
},
{
"Match": 5,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0
},
{
"Match": 4,
"Type": 2,
"Content": "+ uses: docker/login-action@v4",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 137
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 139,
"Match": 0,
"Type": 1,
"Content": " registry: ${{ vars.PACKAGES_REGISTRY_URL }}"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 140,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.ACTIONS_USERNAME }}",
"Comments": null
},
{
"Content": " password: ${{ secrets.ACTIONS_TOKEN }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141,
"RightIdx": 141,
"Match": 0,
"Type": 1
},
{
"RightIdx": 142,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142
},
{
"Match": 0,
"Type": 1,
"Content": " - name: Log in to GitHub Container Registry",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143,
"RightIdx": 143
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144,
"RightIdx": 0,
"Match": 13,
"Type": 3,
"Content": "- uses: docker/login-action@v3",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 144,
"Match": 12,
"Type": 2,
"Content": "+ uses: docker/login-action@v4"
},
{
"Type": 1,
"Content": " with:",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145,
"RightIdx": 145,
"Match": 0
},
{
"LeftIdx": 146,
"RightIdx": 146,
"Match": 0,
"Type": 1,
"Content": " registry: ghcr.io",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 147,
"Match": 0,
"Type": 1,
"Content": " username: ${{ vars.GHCR_USERNAME }}",
"Comments": null
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Type": 4,
"Content": "@@ -149,7 +149,7 @@ jobs:",
"Comments": null,
"SectionInfo": {
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 147,
"LastRightIdx": 147,
"LeftIdx": 149,
"RightIdx": 149,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 149,
"Match": 0
},
{
"LeftIdx": 150,
"RightIdx": 150,
"Match": 0,
"Type": 1,
"Content": " - name: Extract metadata (tags, labels) for Docker",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 151,
"Match": 0,
"Type": 1,
"Content": " id: meta",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151
},
{
"Content": "- uses: docker/metadata-action@v5",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0,
"Match": 5,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 152,
"Match": 4,
"Type": 2,
"Content": "+ uses: docker/metadata-action@v6"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 153,
"Match": 0,
"Type": 1,
"Content": " with:"
},
{
"LeftIdx": 154,
"RightIdx": 154,
"Match": 0,
"Type": 1,
"Content": " tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 155,
"RightIdx": 155,
"Match": 0,
"Type": 1,
"Content": " images: |",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftIdx": 165,
"RightIdx": 165,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 155,
"LastRightIdx": 155
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -165,7 +165,7 @@ jobs:"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 165,
"RightIdx": 165,
"Match": 0,
"Type": 1,
"Content": " printf \"Tags:\\n${{ steps.meta.outputs.tags }}\"",
"Comments": null
},
{
"LeftIdx": 166,
"RightIdx": 166,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 167,
"RightIdx": 167,
"Match": 0,
"Type": 1,
"Content": " - name: Build images",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 168,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "- uses: docker/build-push-action@v6"
},
{
"LeftIdx": 0,
"RightIdx": 168,
"Match": 4,
"Type": 2,
"Content": "+ uses: docker/build-push-action@v7",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 169,
"RightIdx": 169,
"Match": 0,
"Type": 1,
"Content": " with:",
"Comments": null
},
{
"LeftIdx": 170,
"RightIdx": 170,
"Match": 0,
"Type": 1,
"Content": " context: .",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 171,
"RightIdx": 171,
"Match": 0,
"Type": 1,
"Content": " push: false",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": ".gitea/workflows/release.yml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastRightIdx": 171,
"LeftIdx": 183,
"RightIdx": 183,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": ".gitea/workflows/release.yml",
"LastLeftIdx": 171
},
"LeftIdx": 0
}
]
}
],
"Deletion": 7,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsVendored": false,
"IsViewed": false,
"IsSubmodule": false,
"IsProtected": false,
"HasChangedSinceLastReview": false,
"Name": ".gitea/workflows/release.yml",
"OldName": ".gitea/workflows/release.yml",
"EntryMode": "",
"IsCreated": false,
"IsBin": false,
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"Addition": 7,
"Type": 2
},
{
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"OldName": "Dockerfile",
"Addition": 1,
"OldEntryMode": "",
"IsIncomplete": false,
"IsGenerated": false,
"IsProtected": false,
"IsCreated": false,
"IsDeleted": false,
"IsSubmodule": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"IsViewed": false,
"HasChangedSinceLastReview": false,
"Name": "Dockerfile",
"Type": 2,
"IsBin": false,
"IsLFSFile": false,
"Sections": [
{
"FileName": "Dockerfile",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -1,4 +1,4 @@",
"Comments": null,
"SectionInfo": {
"Path": "Dockerfile",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 1,
"RightIdx": 1,
"LeftHunkSize": 4,
"RightHunkSize": 4,
"HiddenCommentIDs": null
}
},
{
"Match": 2,
"Type": 3,
"Content": "-FROM python:3.13-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 1,
"RightIdx": 0
},
{
"RightIdx": 1,
"Match": 1,
"Type": 2,
"Content": "+FROM python:3.14-slim",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 2,
"RightIdx": 2,
"Match": 0,
"Type": 1,
"Content": " LABEL maintainer=\"Luke Tainton <luke@tainton.uk>\""
},
{
"LeftIdx": 3,
"RightIdx": 3,
"Match": 0,
"Type": 1,
"Content": " LABEL org.opencontainers.image.source=\"https://github.com/luketainton/pypilot\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 4,
"RightIdx": 4,
"Match": 0,
"Type": 1,
"Content": " USER root",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "Dockerfile",
"Lines": [
{
"SectionInfo": {
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "Dockerfile",
"LastLeftIdx": 4,
"LastRightIdx": 4,
"LeftIdx": 26,
"RightIdx": 26
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null
}
]
}
],
"IsVendored": false,
"Deletion": 1,
"EntryMode": "",
"IsRenamed": false,
"IsIncompleteLineTooLong": false
},
{
"IsIncomplete": false,
"IsProtected": false,
"IsLFSFile": false,
"IsSubmodule": false,
"Type": 2,
"EntryMode": "",
"OldEntryMode": "",
"IsDeleted": false,
"IsBin": false,
"Sections": [
{
"FileName": "pyproject.toml",
"Lines": [
{
"Content": "@@ -7,50 +7,28 @@ authors = [",
"Comments": null,
"SectionInfo": {
"Path": "pyproject.toml",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 7,
"RightIdx": 7,
"LeftHunkSize": 50,
"RightHunkSize": 28,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 7,
"RightIdx": 7,
"Match": 0,
"Type": 1,
"Content": " {name = \"Luke Tainton\", email = \"luke@tainton.uk\"},",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " requires-python = \"<4.0,>=3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 10,
"Match": -1,
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 11
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- \"astroid==3.3.11\","
},
{
"Content": "- \"attrs==25.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 0,
"Match": 32,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"certifi==2025.7.14\","
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"charset-normalizer==3.4.2\",",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"click==8.2.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"dill==0.4.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 16
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"exceptiongroup==1.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"idna==3.10\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"iniconfig==2.1.0\","
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"lazy-object-proxy==1.11.0\",",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"mccabe==0.7.0\",",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- \"mypy-extensions==1.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0
},
{
"LeftIdx": 23,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"packaging==25.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pathspec==0.12.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"platformdirs==4.3.8\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 26,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"pluggy==1.6.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"py==1.11.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- \"pyparsing==3.2.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 29,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"requests==2.32.4\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- \"six==1.17.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"tabulate==0.9.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 31
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"tomli==2.2.1\","
},
{
"Type": 3,
"Content": "- \"tomlkit==0.13.3\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 33,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"urllib3==2.5.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"wrapt==1.17.2\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 35
},
{
"LeftIdx": 0,
"RightIdx": 12,
"Match": 6,
"Type": 2,
"Content": "+ \"requests==2.32.5\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ \"tabulate==0.10.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 7
},
{
"LeftIdx": 36,
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 15,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " [project.scripts]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 16,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 39,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " app = \"app.main:main\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 18,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 41,
"RightIdx": 0,
"Match": 42,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-[tool.uv]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 43
},
{
"RightIdx": 0,
"Match": 44,
"Type": 3,
"Content": "-dev-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- \"black<25.2.0,>=25.1.0\",",
"Comments": null
},
{
"Content": "+[dependency-groups]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 19,
"Match": 38,
"Type": 2
},
{
"Type": 2,
"Content": "+dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 39
},
{
"Type": 2,
"Content": "+ \"black<26.3.1,>=26.3.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 21,
"Match": 40
},
{
"LeftIdx": 45,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"coverage<8.0.0,>=7.5.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 47,
"Type": 3,
"Content": "- \"pylint<4.0.0,>=3.1.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 46
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 23,
"Match": 46,
"Type": 2,
"Content": "+ \"pylint<4.1.0,>=4.0.4\","
},
{
"Type": 1,
"Content": " \"pylint-exit<2.0.0,>=1.2.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 47,
"RightIdx": 24,
"Match": 0
},
{
"LeftIdx": 48,
"RightIdx": 0,
"Match": 50,
"Type": 3,
"Content": "- \"pytest<9.0.0,>=8.1.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 25,
"Match": 49,
"Type": 2,
"Content": "+ \"pytest<9.1.0,>=9.0.0\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " \"requests-mock<2.0.0,>=1.12.1\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 26
},
{
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 50
},
{
"LeftIdx": 51,
"RightIdx": 28,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 29,
"Match": 0,
"Type": 1,
"Content": " [tool.pdm.build]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 52
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 30,
"Match": 0,
"Type": 1,
"Content": " includes = []"
},
{
"Type": 2,
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1
},
{
"Type": 1,
"Content": " [build-system]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 54,
"RightIdx": 32,
"Match": 0
},
{
"LeftIdx": 55,
"RightIdx": 33,
"Match": 0,
"Type": 1,
"Content": " requires = [\"pdm-backend\"]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 34,
"Match": 0,
"Type": 1,
"Content": " build-backend = \"pdm.backend\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56
}
]
},
{
"FileName": "pyproject.toml",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 56,
"LastRightIdx": 34,
"LeftIdx": 57,
"RightIdx": 35,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "pyproject.toml"
},
"LeftIdx": 0
}
]
}
],
"OldName": "pyproject.toml",
"Deletion": 31,
"IsCreated": false,
"IsIncompleteLineTooLong": false,
"IsGenerated": false,
"IsVendored": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"IsRenamed": false,
"Name": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"Addition": 9,
"IsViewed": false
},
{
"Addition": 16,
"EntryMode": "",
"IsLFSFile": false,
"IsSubmodule": false,
"Sections": [
{
"FileName": "renovate.json",
"Lines": [
{
"Content": "@@ -8,6 +8,11 @@",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 6,
"RightHunkSize": 11
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Content": " \"platformCommit\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8,
"RightIdx": 8,
"Match": 0,
"Type": 1
},
{
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " \"rebaseWhen\": \"behind-base-branch\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 9
},
{
"Type": 1,
"Content": " \"rollbackPrs\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0
},
{
"Type": 2,
"Content": "+ \"semanticCommits\": \"enabled\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": -1
},
{
"Content": "+ \"semanticCommitScope\": \"deps\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 12,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": -1,
"Type": 2,
"Content": "+ \"semanticCommitType\": \"feat\",",
"Comments": null
},
{
"Content": "+ \"osvVulnerabilityAlerts\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 14,
"Match": -1,
"Type": 2
},
{
"Content": "+ \"dependencyDashboardOSVVulnerabilitySummary\": \"all\",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 16,
"Match": 0,
"Type": 1,
"Content": " \"vulnerabilityAlerts\": {",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " \"commitMessagePrefix\": \"[SECURITY] \",",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 17
},
{
"LeftIdx": 13,
"RightIdx": 18,
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true,",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"LeftIdx": 16,
"RightIdx": 21,
"LeftHunkSize": 5,
"RightHunkSize": 15,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 13,
"LastRightIdx": 18
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -16,5 +21,15 @@"
},
{
"LeftIdx": 16,
"RightIdx": 21,
"Match": 0,
"Type": 1,
"Content": " },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " \"lockFileMaintenance\": {",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " \"enabled\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 18,
"RightIdx": 23
},
{
"Match": 5,
"Type": 3,
"Content": "- }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 24,
"Match": 4,
"Type": 2,
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 25,
"Match": -1,
"Type": 2,
"Content": "+ \"packageRules\": [",
"Comments": null
},
{
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 26,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 27,
"Match": -1,
"Type": 2,
"Content": "+ \"matchDepTypes\": [\"devDependencies\"],"
},
{
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 28
},
{
"Content": "+ },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 29,
"Match": -1,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 30,
"Match": -1,
"Type": 2,
"Content": "+ {",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 31,
"Match": -1,
"Type": 2,
"Content": "+ \"matchUpdateTypes\": [\"patch\"],"
},
{
"LeftIdx": 0,
"RightIdx": 32,
"Match": -1,
"Type": 2,
"Content": "+ \"automerge\": true",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 33,
"Match": -1,
"Type": 2
},
{
"Content": "+ ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": -1,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20,
"RightIdx": 35,
"Match": 0,
"Type": 1,
"Content": " }",
"Comments": null
}
]
},
{
"FileName": "renovate.json",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": " ",
"Comments": null,
"SectionInfo": {
"RightIdx": 36,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "renovate.json",
"LastLeftIdx": 20,
"LastRightIdx": 35,
"LeftIdx": 21
}
}
]
}
],
"IsIncomplete": false,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"HasChangedSinceLastReview": false,
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"Deletion": 1,
"IsCreated": false,
"IsDeleted": false,
"IsBin": false,
"IsProtected": false,
"Name": "renovate.json",
"OldName": "renovate.json",
"Type": 2,
"IsRenamed": false,
"IsGenerated": false,
"OldEntryMode": "",
"IsIncompleteLineTooLong": false,
"IsVendored": false,
"IsViewed": false
},
{
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"OldName": "uv.lock",
"Deletion": 391,
"IsDeleted": false,
"IsRenamed": false,
"IsSubmodule": false,
"IsGenerated": true,
"SubmoduleDiffInfo": "[*gitdiff.SubmoduleDiffInfo]",
"Addition": 271,
"EntryMode": "",
"OldEntryMode": "",
"IsCreated": false,
"Sections": [
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -8,25 +8,16 @@ resolution-markers = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 0,
"LastRightIdx": 0,
"LeftIdx": 8,
"RightIdx": 8,
"LeftHunkSize": 25,
"RightHunkSize": 16
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"RightIdx": 8,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 8
},
{
"LeftIdx": 9,
"RightIdx": 9,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " name = \"astroid\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 10,
"RightIdx": 10,
"Match": 0
},
{
"Type": 3,
"Content": "-version = \"3.3.11\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 11,
"RightIdx": 0,
"Match": 5
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 11,
"Match": 4,
"Type": 2,
"Content": "+version = \"4.0.4\"",
"Comments": null
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 12,
"RightIdx": 12,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/74/dfb75f9ccd592bbedb175d4a32fc643cf569d7c218508bfbd6ea7ef9c091/astroid-3.3.11.tar.gz\", hash = \"sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce\", size = 400439, upload-time = \"2025-07-13T18:04:23.177Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 13,
"RightIdx": 0,
"Match": 8
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 13,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b/astroid-4.0.4.tar.gz\", hash = \"sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0\", size = 406358, upload-time = \"2026-02-07T23:35:07.509Z\" }"
},
{
"RightIdx": 14,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 14
},
{
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl\", hash = \"sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec\", size = 275612, upload-time = \"2025-07-13T18:04:21.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 15
},
{
"LeftIdx": 16,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 17,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"LeftIdx": 18,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 19,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"attrs\"",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"25.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 20
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 21,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz\", hash = \"sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b\", size = 812032, upload-time = \"2025-03-13T11:10:22.779Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 22,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 23
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 24,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl\", hash = \"sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3\", size = 63815, upload-time = \"2025-03-13T11:10:21.14Z\" },"
},
{
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9/astroid-4.0.4-py3-none-any.whl\", hash = \"sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753\", size = 276445, upload-time = \"2026-02-07T23:35:05.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 15
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 25,
"RightIdx": 16,
"Match": 0
},
{
"LeftIdx": 26,
"RightIdx": 17,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 27,
"RightIdx": 18,
"Match": 0,
"Type": 1
},
{
"RightIdx": 19,
"Match": 0,
"Type": 1,
"Content": " name = \"black\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 28
},
{
"Content": "-version = \"25.1.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 29,
"RightIdx": 0,
"Match": 26,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 20,
"Match": 25,
"Type": 2,
"Content": "+version = \"26.3.0\"",
"Comments": null
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 30,
"RightIdx": 21,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 31,
"RightIdx": 22,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 32,
"RightIdx": 23,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -34,91 +25,125 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 32,
"LastRightIdx": 23,
"LeftIdx": 34,
"RightIdx": 25,
"LeftHunkSize": 91,
"RightHunkSize": 125,
"HiddenCommentIDs": null,
"Path": "uv.lock"
}
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"packaging\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 34,
"RightIdx": 25
},
{
"LeftIdx": 35,
"RightIdx": 26,
"Match": 0,
"Type": 1,
"Content": " { name = \"pathspec\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 36,
"RightIdx": 27,
"Match": 0,
"Type": 1,
"Content": " { name = \"platformdirs\" },"
},
{
"RightIdx": 28,
"Match": -1,
"Type": 2,
"Content": "+ { name = \"pytokens\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 37,
"RightIdx": 29,
"Match": 0
},
{
"Match": 7,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz\", hash = \"sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666\", size = 649449, upload-time = \"2025-01-29T04:15:40.373Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 38,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 30,
"Match": 6,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/11/5f/25b7b149b8b7d3b958efa4faa56446560408c0f2651108a517526de0320a/black-26.3.0.tar.gz\", hash = \"sha256:4d438dfdba1c807c6c7c63c4f15794dda0820d2222e7c4105042ac9ddfc5dd0b\", size = 664127, upload-time = \"2026-03-06T17:42:33.7Z\" }"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 39,
"RightIdx": 31,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 40,
"RightIdx": 0,
"Match": 22,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0\", size = 1614372, upload-time = \"2025-01-29T05:37:11.71Z\" },",
"Comments": null
},
{
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299\", size = 1442865, upload-time = \"2025-01-29T05:37:14.309Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 41,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096\", size = 1749699, upload-time = \"2025-01-29T04:18:17.688Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 42,
"RightIdx": 0,
"Match": 24
},
{
"Match": 25,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2\", size = 1428028, upload-time = \"2025-01-29T04:18:51.711Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 43,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b\", size = 1650988, upload-time = \"2025-01-29T05:37:16.707Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 44,
"RightIdx": 0,
"Match": 26
},
{
"LeftIdx": 45,
"RightIdx": 0,
"Match": 27,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc\", size = 1453985, upload-time = \"2025-01-29T05:37:18.273Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 46,
"RightIdx": 0,
"Match": 28,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f\", size = 1783816, upload-time = \"2025-01-29T04:18:33.823Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 47,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba\", size = 1440860, upload-time = \"2025-01-29T04:19:12.944Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 48,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f\", size = 1650673, upload-time = \"2025-01-29T05:37:20.574Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 49,
"RightIdx": 0,
"Match": 31,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3\", size = 1453190, upload-time = \"2025-01-29T05:37:22.106Z\" },"
},
{
"LeftIdx": 50,
"RightIdx": 0,
"Match": 32,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171\", size = 1782926, upload-time = \"2025-01-29T04:18:58.564Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 51,
"RightIdx": 0,
"Match": 33,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18\", size = 1442613, upload-time = \"2025-01-29T04:19:27.63Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 52,
"RightIdx": 0,
"Match": 34,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl\", hash = \"sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717\", size = 207646, upload-time = \"2025-01-29T04:15:38.082Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f9/ec/e4db9f2b2db8226ae20d48b589c69fd64477657bf241c8ccaea3bc4feafa/black-26.3.0-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:3da07abe65732483e915ab7f9c7c50332c293056436e9519373775d62539607c\", size = 1851905, upload-time = \"2026-03-06T17:46:15.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 32,
"Match": 9
},
{
"LeftIdx": 0,
"RightIdx": 33,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/2c/ccecfcbd6a0610ecf554e852a146f053eaeb5b281dd9cb634338518c765e/black-26.3.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:fc9fd683ccabc3dc9791b93db494d93b5c6c03b105453b76d71e5474e9dfa6e7\", size = 1689299, upload-time = \"2026-03-06T17:46:17.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 34,
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/53/8dcb860242012d6da9c6b1b930c3e4c947eb42feb1fc70f2a4e7332c90c5/black-26.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:8e2c7e2c5ee09ff575869258b2c07064c952637918fc5e15f6ebd45e45eae0aa\", size = 1753902, upload-time = \"2026-03-06T17:46:19.592Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 35,
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/21/f37b3efcc8cf2d01ec9eb5466598aa53bed2292db236723ac4571e24c4de/black-26.3.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:a849286bfc3054eaeb233b6df9056fcf969ee18bf7ecb71b0257e838a0f05e6d\", size = 1413841, upload-time = \"2026-03-06T17:46:20.981Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 36,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/74/e70f5f2a74301d8f10276b90715699d51d7db1c3dd79cf13966d32ba7b18/black-26.3.0-cp311-cp311-win_arm64.whl\", hash = \"sha256:c93c83af43cda73ed8265d001214779ab245fa7a861a75b3e43828f4fb1f5657\", size = 1220105, upload-time = \"2026-03-06T17:46:23.269Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 37,
"Match": 14,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1d/76/b21711045b7f4c4f1774048d0b34dd10a265c42255658b251ce3303ae3c7/black-26.3.0-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:c2b1e5eec220b419e3591a0aaa6351bd3a9c01fe6291fbaf76d84308eb7a2ede\", size = 1895944, upload-time = \"2026-03-06T17:46:24.841Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 38,
"Match": 15,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f2/c3/8c56e73283326bc92a36101c660228fff09a2403a57a03cacf3f7f84cf62/black-26.3.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:1bab64de70bccc992432bee56cdffbe004ceeaa07352127c386faa87e81f9261\", size = 1718669, upload-time = \"2026-03-06T17:46:26.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 39,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7b/8b/712a3ae8f17c1f3cd6f9ac2fffb167a27192f5c7aba68724e8c4ab8474ad/black-26.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:5b6c5f734290803b7b26493ffd734b02b72e6c90d82d45ac4d5b862b9bdf7720\", size = 1794844, upload-time = \"2026-03-06T17:46:28.334Z\" },"
},
{
"RightIdx": 40,
"Match": 17,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/5b/ee955040e446df86473287dd24dc69c80dd05e02cc358bca90e22059f7b1/black-26.3.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:7c767396af15b54e1a6aae99ddf241ae97e589f666b1d22c4b6618282a04e4ca\", size = 1420461, upload-time = \"2026-03-06T17:46:29.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/12/77/40b8bd44f032bb34c9ebf47ffc5bb47a2520d29e0a4b8a780ab515223b5a/black-26.3.0-cp312-cp312-win_arm64.whl\", hash = \"sha256:765fd6ddd00f35c55250fdc6b790c272d54ac3f44da719cc42df428269b45980\", size = 1229667, upload-time = \"2026-03-06T17:46:31.654Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 41,
"Match": 18,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 42,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/28/c3/21a834ce3de02c64221243f2adac63fa3c3f441efdb3adbf4136b33dfeb0/black-26.3.0-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:59754fd8f43ef457be190594c07a52c999e22cb1534dc5344bff1d46fdf1027d\", size = 1895195, upload-time = \"2026-03-06T17:46:33.12Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 43,
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1c/f9/212d9697dd78362dadb778d4616b74c8c2cf7f2e4a55aac2adeb0576f2e9/black-26.3.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:1fd94cfee67b8d336761a0b08629a25938e4a491c440951ce517a7209c99b5ff\", size = 1718472, upload-time = \"2026-03-06T17:46:34.576Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 44,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a2/dd/da980b2f512441375b73cb511f38a2c3db4be83ccaa1302b8d39c9fa2dff/black-26.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:6f7b3e653a90ca1ef4e821c20f8edaee80b649c38d2532ed2e9073a9534b14a7\", size = 1793741, upload-time = \"2026-03-06T17:46:36.261Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 45,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/11/cd69ae8826fe3bc6eaf525c8c557266d522b258154a2968eb46d6d25fac7/black-26.3.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:f8fb9d7c2496adc83614856e1f6e55a9ce4b7ae7fc7f45b46af9189ddb493464\", size = 1422522, upload-time = \"2026-03-06T17:46:37.607Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 46,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/f5/647cf50255203eb286be197925e86eedc101d5409147505db3e463229228/black-26.3.0-cp313-cp313-win_arm64.whl\", hash = \"sha256:e8618c1d06838f56afbcb3ffa1aa16436cec62b86b38c7b32ca86f53948ffb91\", size = 1231807, upload-time = \"2026-03-06T17:46:39.072Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 47,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ff/77/b197e701f15fd694d20d8ee0001efa2e29eba917aa7c3610ff7b10ae0f88/black-26.3.0-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:d0c6f64ead44f4369c66f1339ecf68e99b40f2e44253c257f7807c5a3ef0ca32\", size = 1889209, upload-time = \"2026-03-06T17:46:40.453Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/93/85/b4d4924ac898adc2e39fc7a923bed99797535bc16dea4bc63944c3903c2b/black-26.3.0-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:ed6f0809134e51ec4a7509e069cdfa42bf996bd0fd1df6d3146b907f36e28893\", size = 1720830, upload-time = \"2026-03-06T17:46:42.009Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 48
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/b1/5c0bf29fe5b43fcc6f3e8480c6566d21a02d4e702b3846944e7daa06dea9/black-26.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:cc6ac0ea5dd5fa6311ca82edfa3620cba0ed0426022d10d2d5d39aedbf3e1958\", size = 1787676, upload-time = \"2026-03-06T17:46:43.382Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 49,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/ce/cc8cf14806c144d6a16512272c537d5450f50675d3e8c038705430e90fd9/black-26.3.0-cp314-cp314-win_amd64.whl\", hash = \"sha256:884bc0aefa96adabcba0b77b10e9775fd52d4b766e88c44dc6f41f7c82787fc8\", size = 1445406, upload-time = \"2026-03-06T17:46:44.948Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 50,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/bb/049ea0fad9f8bdec7b647948adcf74bb720bd71dcb213decd553e05b2699/black-26.3.0-cp314-cp314-win_arm64.whl\", hash = \"sha256:be3bd02aab5c4ab03703172f5530ddc8fc8b5b7bb8786230e84c9e011cee9ca1\", size = 1257945, upload-time = \"2026-03-06T17:46:46.432Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 51,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/d7/7360654ba4f8b41afcaeb5aca973cfea5591da75aff79b0a8ae0bb8883f6/black-26.3.0-py3-none-any.whl\", hash = \"sha256:e825d6b121910dff6f04d7691f826d2449327e8e71c26254c030c4f3d2311985\", size = 206848, upload-time = \"2026-03-06T17:42:31.133Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 52,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 53,
"RightIdx": 53,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 54,
"RightIdx": 54,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 55,
"RightIdx": 55
},
{
"RightIdx": 56,
"Match": 0,
"Type": 1,
"Content": " name = \"certifi\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 56
},
{
"Type": 3,
"Content": "-version = \"2025.7.14\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 57,
"RightIdx": 0,
"Match": 48
},
{
"LeftIdx": 0,
"RightIdx": 57,
"Match": 47,
"Type": 2,
"Content": "+version = \"2026.2.25\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 58,
"RightIdx": 58,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 59,
"RightIdx": 0,
"Match": 51,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz\", hash = \"sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995\", size = 163981, upload-time = \"2025-07-14T03:29:28.449Z\" }"
},
{
"RightIdx": 59,
"Match": 50,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz\", hash = \"sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7\", size = 155029, upload-time = \"2026-02-25T02:54:17.342Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 60,
"RightIdx": 60,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 61,
"RightIdx": 0,
"Match": 54,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl\", hash = \"sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2\", size = 162722, upload-time = \"2025-07-14T03:29:26.863Z\" },"
},
{
"Match": 53,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl\", hash = \"sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa\", size = 153684, upload-time = \"2026-02-25T02:54:15.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 61
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 62,
"RightIdx": 62,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 63,
"RightIdx": 63
},
{
"RightIdx": 64,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 64
},
{
"Type": 1,
"Content": " name = \"charset-normalizer\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 65,
"RightIdx": 65,
"Match": 0
},
{
"Content": "-version = \"3.4.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 66,
"RightIdx": 0,
"Match": 60,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 66,
"Match": 59,
"Type": 2,
"Content": "+version = \"3.4.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 67,
"RightIdx": 67,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"RightIdx": 0,
"Match": 63,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz\", hash = \"sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63\", size = 126367, upload-time = \"2025-05-02T08:34:42.01Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 68
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz\", hash = \"sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a\", size = 129418, upload-time = \"2025-10-14T04:42:32.879Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 68,
"Match": 62,
"Type": 2
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 69,
"RightIdx": 69,
"Match": 0
},
{
"LeftIdx": 70,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/85/4c40d00dcc6284a1c1ad5de5e0996b06f39d8232f1031cd23c2f5c07ee86/charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2\", size = 198794, upload-time = \"2025-05-02T08:32:11.945Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 71,
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/41/d9/7a6c0b9db952598e97e93cbdfcb91bacd89b9b88c7c983250a77c008703c/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645\", size = 142846, upload-time = \"2025-05-02T08:32:13.946Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/82/a37989cda2ace7e37f36c1a8ed16c58cf48965a79c2142713244bf945c89/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd\", size = 153350, upload-time = \"2025-05-02T08:32:15.873Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 72
},
{
"LeftIdx": 73,
"RightIdx": 0,
"Match": 108,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/df/68/a576b31b694d07b53807269d05ec3f6f1093e9545e8607121995ba7a8313/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8\", size = 145657, upload-time = \"2025-05-02T08:32:17.283Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 74,
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/9b/ad67f03d74554bed3aefd56fe836e1623a50780f7c998d00ca128924a499/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f\", size = 147260, upload-time = \"2025-05-02T08:32:18.807Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 75,
"RightIdx": 0,
"Match": 110,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/e6/8aebae25e328160b20e31a7e9929b1578bbdc7f42e66f46595a432f8539e/charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7\", size = 149164, upload-time = \"2025-05-02T08:32:20.333Z\" },"
},
{
"LeftIdx": 76,
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8b/f2/b3c2f07dbcc248805f10e67a0262c93308cfa149a4cd3d1fe01f593e5fd2/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9\", size = 144571, upload-time = \"2025-05-02T08:32:21.86Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/60/5b/c3f3a94bc345bc211622ea59b4bed9ae63c00920e2e8f11824aa5708e8b7/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544\", size = 151952, upload-time = \"2025-05-02T08:32:23.434Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 77
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 78,
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/4d/ff460c8b474122334c2fa394a3f99a04cf11c646da895f81402ae54f5c42/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82\", size = 155959, upload-time = \"2025-05-02T08:32:24.993Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a2/2b/b964c6a2fda88611a1fe3d4c400d39c66a42d6c169c924818c848f922415/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0\", size = 153030, upload-time = \"2025-05-02T08:32:26.435Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 79,
"RightIdx": 0,
"Match": 114
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 80,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/59/2e/d3b9811db26a5ebf444bc0fa4f4be5aa6d76fc6e1c0fd537b16c14e849b6/charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5\", size = 148015, upload-time = \"2025-05-02T08:32:28.376Z\" },",
"Comments": null
},
{
"LeftIdx": 81,
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/90/07/c5fd7c11eafd561bb51220d600a788f1c8d77c5eef37ee49454cc5c35575/charset_normalizer-3.4.2-cp311-cp311-win32.whl\", hash = \"sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a\", size = 98106, upload-time = \"2025-05-02T08:32:30.281Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/05/5e33dbef7e2f773d672b6d79f10ec633d4a71cd96db6673625838a4fd532/charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28\", size = 105402, upload-time = \"2025-05-02T08:32:32.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 82,
"RightIdx": 0,
"Match": 117
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 83,
"RightIdx": 0,
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7\", size = 199936, upload-time = \"2025-05-02T08:32:33.712Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 84,
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3\", size = 143790, upload-time = \"2025-05-02T08:32:35.768Z\" },"
},
{
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a\", size = 153924, upload-time = \"2025-05-02T08:32:37.284Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 85
},
{
"LeftIdx": 86,
"RightIdx": 0,
"Match": 121,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214\", size = 146626, upload-time = \"2025-05-02T08:32:38.803Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 87,
"RightIdx": 0,
"Match": 122,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a\", size = 148567, upload-time = \"2025-05-02T08:32:40.251Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 88,
"RightIdx": 0,
"Match": 123,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd\", size = 150957, upload-time = \"2025-05-02T08:32:41.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981\", size = 145408, upload-time = \"2025-05-02T08:32:43.709Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 89
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 90,
"RightIdx": 0,
"Match": 125,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c\", size = 153399, upload-time = \"2025-05-02T08:32:46.197Z\" },"
},
{
"LeftIdx": 91,
"RightIdx": 0,
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b\", size = 156815, upload-time = \"2025-05-02T08:32:48.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 92,
"RightIdx": 0,
"Match": 127,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d\", size = 154537, upload-time = \"2025-05-02T08:32:49.719Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 93,
"RightIdx": 0,
"Match": 128,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f\", size = 149565, upload-time = \"2025-05-02T08:32:51.404Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 94,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl\", hash = \"sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c\", size = 98357, upload-time = \"2025-05-02T08:32:53.079Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 95,
"RightIdx": 0,
"Match": 130,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e\", size = 105776, upload-time = \"2025-05-02T08:32:54.573Z\" },"
},
{
"RightIdx": 0,
"Match": 131,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0\", size = 199622, upload-time = \"2025-05-02T08:32:56.363Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 96
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 97,
"RightIdx": 0,
"Match": 132,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf\", size = 143435, upload-time = \"2025-05-02T08:32:58.551Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 98,
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl\", hash = \"sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e\", size = 153653, upload-time = \"2025-05-02T08:33:00.342Z\" },"
},
{
"LeftIdx": 99,
"RightIdx": 0,
"Match": 134,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl\", hash = \"sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1\", size = 146231, upload-time = \"2025-05-02T08:33:02.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 100,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c\", size = 148243, upload-time = \"2025-05-02T08:33:04.063Z\" },"
},
{
"RightIdx": 0,
"Match": 136,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691\", size = 150442, upload-time = \"2025-05-02T08:33:06.418Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 101
},
{
"LeftIdx": 102,
"RightIdx": 0,
"Match": 137,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0\", size = 145147, upload-time = \"2025-05-02T08:33:08.183Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b\", size = 153057, upload-time = \"2025-05-02T08:33:09.986Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 103,
"RightIdx": 0,
"Match": 138
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 104,
"RightIdx": 0,
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff\", size = 156454, upload-time = \"2025-05-02T08:33:11.814Z\" },"
},
{
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b\", size = 154174, upload-time = \"2025-05-02T08:33:13.707Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 105
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148\", size = 149166, upload-time = \"2025-05-02T08:33:15.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 106,
"RightIdx": 0,
"Match": 141,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl\", hash = \"sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7\", size = 98064, upload-time = \"2025-05-02T08:33:17.06Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 107,
"RightIdx": 0,
"Match": 142
},
{
"Match": 143,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980\", size = 105641, upload-time = \"2025-05-02T08:33:18.753Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 108,
"RightIdx": 0
},
{
"LeftIdx": 109,
"RightIdx": 0,
"Match": 144,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl\", hash = \"sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0\", size = 52626, upload-time = \"2025-05-02T08:34:40.053Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8\", size = 206988, upload-time = \"2025-10-14T04:40:33.79Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 70,
"Match": 65
},
{
"LeftIdx": 0,
"RightIdx": 71,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0\", size = 147324, upload-time = \"2025-10-14T04:40:34.961Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3\", size = 142742, upload-time = \"2025-10-14T04:40:36.105Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 72
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 73,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc\", size = 160863, upload-time = \"2025-10-14T04:40:37.188Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 74,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897\", size = 157837, upload-time = \"2025-10-14T04:40:38.435Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 75,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381\", size = 151550, upload-time = \"2025-10-14T04:40:40.053Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 76,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815\", size = 149162, upload-time = \"2025-10-14T04:40:41.163Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 77,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0\", size = 150019, upload-time = \"2025-10-14T04:40:42.276Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 78,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl\", hash = \"sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161\", size = 143310, upload-time = \"2025-10-14T04:40:43.439Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 79,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4\", size = 162022, upload-time = \"2025-10-14T04:40:44.547Z\" },"
},
{
"RightIdx": 80,
"Match": 75,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89\", size = 149383, upload-time = \"2025-10-14T04:40:46.018Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl\", hash = \"sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569\", size = 159098, upload-time = \"2025-10-14T04:40:47.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 81,
"Match": 76
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 82,
"Match": 77,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224\", size = 152991, upload-time = \"2025-10-14T04:40:48.246Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 83,
"Match": 78,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl\", hash = \"sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a\", size = 99456, upload-time = \"2025-10-14T04:40:49.376Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016\", size = 106978, upload-time = \"2025-10-14T04:40:50.844Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 84,
"Match": 79,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 85,
"Match": 80,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1\", size = 99969, upload-time = \"2025-10-14T04:40:52.272Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 86,
"Match": 81,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394\", size = 208425, upload-time = \"2025-10-14T04:40:53.353Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25\", size = 148162, upload-time = \"2025-10-14T04:40:54.558Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 87,
"Match": 82,
"Type": 2
},
{
"RightIdx": 88,
"Match": 83,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef\", size = 144558, upload-time = \"2025-10-14T04:40:55.677Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 89,
"Match": 84,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d\", size = 161497, upload-time = \"2025-10-14T04:40:57.217Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8\", size = 159240, upload-time = \"2025-10-14T04:40:58.358Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 90,
"Match": 85
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 91,
"Match": 86,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86\", size = 153471, upload-time = \"2025-10-14T04:40:59.468Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a\", size = 150864, upload-time = \"2025-10-14T04:41:00.623Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 92,
"Match": 87,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 93,
"Match": 88,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f\", size = 150647, upload-time = \"2025-10-14T04:41:01.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl\", hash = \"sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc\", size = 145110, upload-time = \"2025-10-14T04:41:03.231Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 94,
"Match": 89
},
{
"RightIdx": 95,
"Match": 90,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf\", size = 162839, upload-time = \"2025-10-14T04:41:04.715Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 96,
"Match": 91,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15\", size = 150667, upload-time = \"2025-10-14T04:41:05.827Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl\", hash = \"sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9\", size = 160535, upload-time = \"2025-10-14T04:41:06.938Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 97,
"Match": 92
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 98,
"Match": 93,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0\", size = 154816, upload-time = \"2025-10-14T04:41:08.101Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 99,
"Match": 94,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl\", hash = \"sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26\", size = 99694, upload-time = \"2025-10-14T04:41:09.23Z\" },",
"Comments": null
},
{
"RightIdx": 100,
"Match": 95,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525\", size = 107131, upload-time = \"2025-10-14T04:41:10.467Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3\", size = 100390, upload-time = \"2025-10-14T04:41:11.915Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 101,
"Match": 96
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794\", size = 208091, upload-time = \"2025-10-14T04:41:13.346Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 102,
"Match": 97
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 103,
"Match": 98,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed\", size = 147936, upload-time = \"2025-10-14T04:41:14.461Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72\", size = 144180, upload-time = \"2025-10-14T04:41:15.588Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 104,
"Match": 99
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328\", size = 161346, upload-time = \"2025-10-14T04:41:16.738Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 105,
"Match": 100
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 106,
"Match": 101,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede\", size = 158874, upload-time = \"2025-10-14T04:41:17.923Z\" },"
},
{
"Match": 102,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894\", size = 153076, upload-time = \"2025-10-14T04:41:19.106Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 107
},
{
"RightIdx": 108,
"Match": 103,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1\", size = 150601, upload-time = \"2025-10-14T04:41:20.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 109,
"Match": 104,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490\", size = 150376, upload-time = \"2025-10-14T04:41:21.398Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 110,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl\", hash = \"sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44\", size = 144825, upload-time = \"2025-10-14T04:41:22.583Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 111,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133\", size = 162583, upload-time = \"2025-10-14T04:41:23.754Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 112,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3\", size = 150366, upload-time = \"2025-10-14T04:41:25.27Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 113,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl\", hash = \"sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e\", size = 160300, upload-time = \"2025-10-14T04:41:26.725Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc\", size = 154465, upload-time = \"2025-10-14T04:41:28.322Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 114,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 115,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl\", hash = \"sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac\", size = 99404, upload-time = \"2025-10-14T04:41:29.95Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14\", size = 107092, upload-time = \"2025-10-14T04:41:31.188Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 116
},
{
"LeftIdx": 0,
"RightIdx": 117,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2\", size = 100408, upload-time = \"2025-10-14T04:41:32.624Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 118,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl\", hash = \"sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd\", size = 207746, upload-time = \"2025-10-14T04:41:33.773Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 119,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb\", size = 147889, upload-time = \"2025-10-14T04:41:34.897Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl\", hash = \"sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e\", size = 143641, upload-time = \"2025-10-14T04:41:36.116Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 120
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14\", size = 160779, upload-time = \"2025-10-14T04:41:37.229Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 121,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 122,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl\", hash = \"sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191\", size = 159035, upload-time = \"2025-10-14T04:41:38.368Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838\", size = 152542, upload-time = \"2025-10-14T04:41:39.862Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 123,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 124,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6\", size = 149524, upload-time = \"2025-10-14T04:41:41.319Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 125,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e\", size = 150395, upload-time = \"2025-10-14T04:41:42.539Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 126,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl\", hash = \"sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c\", size = 143680, upload-time = \"2025-10-14T04:41:43.661Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090\", size = 162045, upload-time = \"2025-10-14T04:41:44.821Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 127,
"Match": -1
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152\", size = 149687, upload-time = \"2025-10-14T04:41:46.442Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 128,
"Match": -1
},
{
"RightIdx": 129,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl\", hash = \"sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828\", size = 160014, upload-time = \"2025-10-14T04:41:47.631Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 130,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec\", size = 154044, upload-time = \"2025-10-14T04:41:48.81Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl\", hash = \"sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9\", size = 99940, upload-time = \"2025-10-14T04:41:49.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 131,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 132,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c\", size = 107104, upload-time = \"2025-10-14T04:41:51.051Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 133,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2\", size = 100743, upload-time = \"2025-10-14T04:41:52.122Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl\", hash = \"sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f\", size = 53402, upload-time = \"2025-10-14T04:42:31.76Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 134
},
{
"RightIdx": 135,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 110
},
{
"LeftIdx": 111,
"RightIdx": 136,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 137,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 112
},
{
"LeftIdx": 113,
"RightIdx": 138,
"Match": 0,
"Type": 1,
"Content": " name = \"click\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 114,
"RightIdx": 0,
"Match": 175,
"Type": 3,
"Content": "-version = \"8.2.2\""
},
{
"Match": 174,
"Type": 2,
"Content": "+version = \"8.3.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 139
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 115,
"RightIdx": 140
},
{
"LeftIdx": 116,
"RightIdx": 141,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 117,
"RightIdx": 142
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 118,
"RightIdx": 143
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e9/87/105111999772ec9730e3d4d910c723ea9763ece2ec441533a5cea1e87e3c/click-8.2.2.tar.gz\", hash = \"sha256:068616e6ef9705a07b6db727cb9c248f4eb9dae437a30239f56fa94b18b852ef\", size = 263977, upload-time = \"2025-08-02T02:23:41.102Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 119,
"RightIdx": 0,
"Match": 181
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 144,
"Match": 180,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz\", hash = \"sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a\", size = 295065, upload-time = \"2025-11-15T20:45:42.706Z\" }"
},
{
"RightIdx": 145,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 120
},
{
"Match": 184,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ec/85/e7297e34133ae1cfde3bffd30c24e1ef055248251baa877834e048687a28/click-8.2.2-py3-none-any.whl\", hash = \"sha256:52e1e9f5d3db8c85aa76968c7c67ed41ddbacb167f43201511c8fd61eb5ba2ca\", size = 103900, upload-time = \"2025-08-02T02:23:39.299Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 121,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 146,
"Match": 183,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl\", hash = \"sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6\", size = 108274, upload-time = \"2025-11-15T20:45:41.139Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 122,
"RightIdx": 147
},
{
"RightIdx": 148,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 123
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 124,
"RightIdx": 149,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -132,116 +157,128 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 124,
"LastRightIdx": 149,
"LeftIdx": 132,
"RightIdx": 157,
"LeftHunkSize": 116,
"RightHunkSize": 128
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"LeftIdx": 132,
"RightIdx": 157,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 158,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 133
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"coverage\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 134,
"RightIdx": 159
},
{
"LeftIdx": 135,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"7.10.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 160,
"Match": 4,
"Type": 2,
"Content": "+version = \"7.13.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 136,
"RightIdx": 161,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 137,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/87/0e/66dbd4c6a7f0758a8d18044c048779ba21fb94856e1edcf764bd5403e710/coverage-7.10.1.tar.gz\", hash = \"sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57\", size = 819938, upload-time = \"2025-07-27T14:13:39.045Z\" }",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 162,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz\", hash = \"sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91\", size = 827239, upload-time = \"2026-02-09T12:59:03.86Z\" }",
"Comments": null
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 138,
"RightIdx": 163,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 139,
"RightIdx": 0,
"Match": 77,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/8e/ef088112bd1b26e2aa931ee186992b3e42c222c64f33e381432c8ee52aae/coverage-7.10.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f\", size = 214747, upload-time = \"2025-07-27T14:11:18.217Z\" },"
},
{
"Match": 78,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/76/a1e46f3c6e0897758eb43af88bb3c763cb005f4950769f7b553e22aa5f89/coverage-7.10.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f1\", size = 215128, upload-time = \"2025-07-27T14:11:19.706Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 140,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 79,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/78/4d/903bafb371a8c887826ecc30d3977b65dfad0e1e66aa61b7e173de0828b0/coverage-7.10.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437\", size = 245140, upload-time = \"2025-07-27T14:11:21.261Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 141
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/f1/1f8f09536f38394a8698dd08a0e9608a512eacee1d3b771e2d06397f77bf/coverage-7.10.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b7\", size = 246977, upload-time = \"2025-07-27T14:11:23.15Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 142,
"RightIdx": 0,
"Match": 80,
"Type": 3
},
{
"RightIdx": 0,
"Match": 81,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/57/cc/ed6bbc5a3bdb36ae1bca900bbbfdcb23b260ef2767a7b2dab38b92f61adf/coverage-7.10.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b8770\", size = 249140, upload-time = \"2025-07-27T14:11:24.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 143
},
{
"RightIdx": 0,
"Match": 82,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/10/f5/e881ade2d8e291b60fa1d93d6d736107e940144d80d21a0d4999cff3642f/coverage-7.10.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262\", size = 246869, upload-time = \"2025-07-27T14:11:26.156Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 144
},
{
"RightIdx": 0,
"Match": 83,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/b9/6a5665cb8996e3cd341d184bb11e2a8edf01d8dadcf44eb1e742186cf243/coverage-7.10.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a3\", size = 244899, upload-time = \"2025-07-27T14:11:27.622Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 145
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/27/11/24156776709c4e25bf8a33d6bb2ece9a9067186ddac19990f6560a7f8130/coverage-7.10.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e1e8496966759a1f282bcd0\", size = 245507, upload-time = \"2025-07-27T14:11:29.544Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 146,
"RightIdx": 0,
"Match": 84
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 147,
"RightIdx": 0,
"Match": 85,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/db/a6f0340b7d6802a79928659c9a32bc778ea420e87a61b568d68ac36d45a8/coverage-7.10.1-cp311-cp311-win32.whl\", hash = \"sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be\", size = 217167, upload-time = \"2025-07-27T14:11:31.349Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f5/6f/1990eb4fd05cea4cfabdf1d587a997ac5f9a8bee883443a1d519a2a848c9/coverage-7.10.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c\", size = 218054, upload-time = \"2025-07-27T14:11:33.202Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 148,
"RightIdx": 0,
"Match": 86
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/4d/5e061d6020251b20e9b4303bb0b7900083a1a384ec4e5db326336c1c4abd/coverage-7.10.1-cp311-cp311-win_arm64.whl\", hash = \"sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293\", size = 216483, upload-time = \"2025-07-27T14:11:34.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 149,
"RightIdx": 0,
"Match": 87
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 150,
"RightIdx": 0,
"Match": 88,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a5/3f/b051feeb292400bd22d071fdf933b3ad389a8cef5c80c7866ed0c7414b9e/coverage-7.10.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4\", size = 214934, upload-time = \"2025-07-27T14:11:36.096Z\" },",
"Comments": null
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f8/e4/a61b27d5c4c2d185bdfb0bfe9d15ab4ac4f0073032665544507429ae60eb/coverage-7.10.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e\", size = 215173, upload-time = \"2025-07-27T14:11:38.005Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 151,
"RightIdx": 0,
"Match": 89
},
{
"Match": 90,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/01/40a6ee05b60d02d0bc53742ad4966e39dccd450aafb48c535a64390a3552/coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c7328f4\", size = 246190, upload-time = \"2025-07-27T14:11:39.887Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 152,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/11/ef/a28d64d702eb583c377255047281305dc5a5cfbfb0ee36e721f78255adb6/coverage-7.10.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a68e04bf97a\", size = 248618, upload-time = \"2025-07-27T14:11:41.841Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 153,
"RightIdx": 0,
"Match": 91
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/ad/73d018bb0c8317725370c79d69b5c6e0257df84a3b9b781bda27a438a3be/coverage-7.10.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe\", size = 250081, upload-time = \"2025-07-27T14:11:43.705Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 154,
"RightIdx": 0,
"Match": 92,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/dd/496adfbbb4503ebca5d5b2de8bed5ec00c0a76558ffc5b834fd404166bc9/coverage-7.10.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386\", size = 247990, upload-time = \"2025-07-27T14:11:45.244Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 155,
"RightIdx": 0,
"Match": 93,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 156,
"RightIdx": 0,
"Match": 94,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/18/3c/a9331a7982facfac0d98a4a87b36ae666fe4257d0f00961a3a9ef73e015d/coverage-7.10.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6\", size = 246191, upload-time = \"2025-07-27T14:11:47.093Z\" },",
"Comments": null
},
{
"LeftIdx": 157,
"RightIdx": 0,
"Match": 95,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0c/75345895013b83f7afe92ec595e15a9a525ede17491677ceebb2ba5c3d85/coverage-7.10.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f\", size = 247400, upload-time = \"2025-07-27T14:11:48.643Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 158,
"RightIdx": 0,
"Match": 96,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e2/a9/98b268cfc5619ef9df1d5d34fee408ecb1542d9fd43d467e5c2f28668cd4/coverage-7.10.1-cp312-cp312-win32.whl\", hash = \"sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885eca\", size = 217338, upload-time = \"2025-07-27T14:11:50.258Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 159,
"RightIdx": 0,
"Match": 97,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/31/22a5440e4d1451f253c5cd69fdcead65e92ef08cd4ec237b8756dc0b20a7/coverage-7.10.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a3\", size = 218125, upload-time = \"2025-07-27T14:11:52.034Z\" },",
"Comments": null
},
{
"LeftIdx": 160,
"RightIdx": 0,
"Match": 98,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/2b/40d9f0ce7ee839f08a43c5bfc9d05cec28aaa7c9785837247f96cbe490b9/coverage-7.10.1-cp312-cp312-win_arm64.whl\", hash = \"sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4\", size = 216523, upload-time = \"2025-07-27T14:11:53.965Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 161,
"RightIdx": 0,
"Match": 99,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/72/135ff5fef09b1ffe78dbe6fcf1e16b2e564cd35faeacf3d63d60d887f12d/coverage-7.10.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39\", size = 214960, upload-time = \"2025-07-27T14:11:55.959Z\" },"
},
{
"LeftIdx": 162,
"RightIdx": 0,
"Match": 100,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b1/aa/73a5d1a6fc08ca709a8177825616aa95ee6bf34d522517c2595484a3e6c9/coverage-7.10.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7\", size = 215220, upload-time = \"2025-07-27T14:11:57.899Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/40/3124fdd45ed3772a42fc73ca41c091699b38a2c3bd4f9cb564162378e8b6/coverage-7.10.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892\", size = 245772, upload-time = \"2025-07-27T14:12:00.422Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 163,
"RightIdx": 0,
"Match": 101,
"Type": 3
},
{
"RightIdx": 0,
"Match": 102,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/42/62/a77b254822efa8c12ad59e8039f2bc3df56dc162ebda55e1943e35ba31a5/coverage-7.10.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:7f39edd52c23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7\", size = 248116, upload-time = \"2025-07-27T14:12:03.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 164
},
{
"LeftIdx": 165,
"RightIdx": 0,
"Match": 103,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1d/01/8101f062f472a3a6205b458d18ef0444a63ae5d36a8a5ed5dd0f6167f4db/coverage-7.10.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994\", size = 249554, upload-time = \"2025-07-27T14:12:04.668Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/7b/e51bc61573e71ff7275a4f167aecbd16cb010aefdf54bcd8b0a133391263/coverage-7.10.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0\", size = 247766, upload-time = \"2025-07-27T14:12:06.234Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 166,
"RightIdx": 0,
"Match": 104,
"Type": 3
},
{
"LeftIdx": 167,
"RightIdx": 0,
"Match": 105,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4b/71/1c96d66a51d4204a9d6d12df53c4071d87e110941a2a1fe94693192262f5/coverage-7.10.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7\", size = 245735, upload-time = \"2025-07-27T14:12:08.305Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 168,
"RightIdx": 0,
"Match": 106,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/d5/efbc2ac4d35ae2f22ef6df2ca084c60e13bd9378be68655e3268c80349ab/coverage-7.10.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7\", size = 247118, upload-time = \"2025-07-27T14:12:09.903Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 169,
"RightIdx": 0,
"Match": 107,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d1/22/073848352bec28ca65f2b6816b892fcf9a31abbef07b868487ad15dd55f1/coverage-7.10.1-cp313-cp313-win32.whl\", hash = \"sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7\", size = 217381, upload-time = \"2025-07-27T14:12:11.535Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/df/df6a0ff33b042f000089bd11b6bb034bab073e2ab64a56e78ed882cba55d/coverage-7.10.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e\", size = 218152, upload-time = \"2025-07-27T14:12:13.182Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 170,
"RightIdx": 0,
"Match": 108
},
{
"RightIdx": 0,
"Match": 109,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/30/e3/5085ca849a40ed6b47cdb8f65471c2f754e19390b5a12fa8abd25cbfaa8f/coverage-7.10.1-cp313-cp313-win_arm64.whl\", hash = \"sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4\", size = 216559, upload-time = \"2025-07-27T14:12:14.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 171
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/93/58714efbfdeb547909feaabe1d67b2bdd59f0597060271b9c548d5efb529/coverage-7.10.1-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72\", size = 215677, upload-time = \"2025-07-27T14:12:16.68Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 172,
"RightIdx": 0,
"Match": 110
},
{
"RightIdx": 0,
"Match": 111,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/0c/18eaa5897e7e8cb3f8c45e563e23e8a85686b4585e29d53cacb6bc9cb340/coverage-7.10.1-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af\", size = 215899, upload-time = \"2025-07-27T14:12:18.758Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 173
},
{
"Match": 112,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/84/c1/9d1affacc3c75b5a184c140377701bbf14fc94619367f07a269cd9e4fed6/coverage-7.10.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7\", size = 257140, upload-time = \"2025-07-27T14:12:20.357Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 174,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": 113,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/0f/339bc6b8fa968c346df346068cca1f24bdea2ddfa93bb3dc2e7749730962/coverage-7.10.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759\", size = 259005, upload-time = \"2025-07-27T14:12:22.007Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 175
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 176,
"RightIdx": 0,
"Match": 114,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/22/89390864b92ea7c909079939b71baba7e5b42a76bf327c1d615bd829ba57/coverage-7.10.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324\", size = 261143, upload-time = \"2025-07-27T14:12:23.746Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 177,
"RightIdx": 0,
"Match": 115,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/56/3d04d89017c0c41c7a71bd69b29699d919b6bbf2649b8b2091240b97dd6a/coverage-7.10.1-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b53\", size = 258735, upload-time = \"2025-07-27T14:12:25.73Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 178,
"RightIdx": 0,
"Match": 116,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cb/40/312252c8afa5ca781063a09d931f4b9409dc91526cd0b5a2b84143ffafa2/coverage-7.10.1-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f\", size = 256871, upload-time = \"2025-07-27T14:12:27.767Z\" },"
},
{
"Match": 117,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/2b/564947d5dede068215aaddb9e05638aeac079685101462218229ddea9113/coverage-7.10.1-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd\", size = 257692, upload-time = \"2025-07-27T14:12:29.347Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 179,
"RightIdx": 0
},
{
"Match": 118,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/93/1b/c8a867ade85cb26d802aea2209b9c2c80613b9c122baa8c8ecea6799648f/coverage-7.10.1-cp313-cp313t-win32.whl\", hash = \"sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c\", size = 218059, upload-time = \"2025-07-27T14:12:31.076Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 180,
"RightIdx": 0
},
{
"LeftIdx": 181,
"RightIdx": 0,
"Match": 119,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/fe/cd4ab40570ae83a516bf5e754ea4388aeedd48e660e40c50b7713ed4f930/coverage-7.10.1-cp313-cp313t-win_amd64.whl\", hash = \"sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18\", size = 219150, upload-time = \"2025-07-27T14:12:32.746Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 120,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8d/16/6e5ed5854be6d70d0c39e9cb9dd2449f2c8c34455534c32c1a508c7dbdb5/coverage-7.10.1-cp313-cp313t-win_arm64.whl\", hash = \"sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4\", size = 217014, upload-time = \"2025-07-27T14:12:34.406Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 182
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/54/8e/6d0bfe9c3d7121cf936c5f8b03e8c3da1484fb801703127dba20fb8bd3c7/coverage-7.10.1-cp314-cp314-macosx_10_13_x86_64.whl\", hash = \"sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c\", size = 214951, upload-time = \"2025-07-27T14:12:36.069Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 183,
"RightIdx": 0,
"Match": 121,
"Type": 3
},
{
"Match": 122,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f2/29/e3e51a8c653cf2174c60532aafeb5065cea0911403fa144c9abe39790308/coverage-7.10.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e\", size = 215229, upload-time = \"2025-07-27T14:12:37.759Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 184,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e0/59/3c972080b2fa18b6c4510201f6d4dc87159d450627d062cd9ad051134062/coverage-7.10.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b\", size = 245738, upload-time = \"2025-07-27T14:12:39.453Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 185,
"RightIdx": 0,
"Match": 123,
"Type": 3
},
{
"RightIdx": 0,
"Match": 124,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2e/04/fc0d99d3f809452654e958e1788454f6e27b34e43f8f8598191c8ad13537/coverage-7.10.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41\", size = 248045, upload-time = \"2025-07-27T14:12:41.387Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 186
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/5e/2e/afcbf599e77e0dfbf4c97197747250d13d397d27e185b93987d9eaac053d/coverage-7.10.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f\", size = 249666, upload-time = \"2025-07-27T14:12:43.056Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 187,
"RightIdx": 0,
"Match": 125,
"Type": 3
},
{
"LeftIdx": 188,
"RightIdx": 0,
"Match": 126,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/ae/bc47f7f8ecb7a06cbae2bf86a6fa20f479dd902bc80f57cff7730438059d/coverage-7.10.1-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1\", size = 247692, upload-time = \"2025-07-27T14:12:44.83Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b6/26/cbfa3092d31ccba8ba7647e4d25753263e818b4547eba446b113d7d1efdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:991196702d5e0b120a8fef2664e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2\", size = 245536, upload-time = \"2025-07-27T14:12:46.527Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 189,
"RightIdx": 0,
"Match": 127
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/56/77/9c68e92500e6a1c83d024a70eadcc9a173f21aadd73c4675fe64c9c43fdf/coverage-7.10.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4\", size = 246954, upload-time = \"2025-07-27T14:12:49.279Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 190,
"RightIdx": 0,
"Match": 128,
"Type": 3
},
{
"LeftIdx": 191,
"RightIdx": 0,
"Match": 129,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7f/a5/ba96671c5a669672aacd9877a5987c8551501b602827b4e84256da2a30a7/coverage-7.10.1-cp314-cp314-win32.whl\", hash = \"sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613\", size = 217616, upload-time = \"2025-07-27T14:12:51.214Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/3c/e1e1eb95fc1585f15a410208c4795db24a948e04d9bde818fe4eb893bc85/coverage-7.10.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e\", size = 218412, upload-time = \"2025-07-27T14:12:53.429Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 192,
"RightIdx": 0,
"Match": 130,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/b0/85/7e1e5be2cb966cba95566ba702b13a572ca744fbb3779df9888213762d67/coverage-7.10.1-cp314-cp314-win_arm64.whl\", hash = \"sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652\", size = 216776, upload-time = \"2025-07-27T14:12:55.482Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 193,
"RightIdx": 0,
"Match": 131,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/62/0f/5bb8f29923141cca8560fe2217679caf4e0db643872c1945ac7d8748c2a7/coverage-7.10.1-cp314-cp314t-macosx_10_13_x86_64.whl\", hash = \"sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894\", size = 215698, upload-time = \"2025-07-27T14:12:57.225Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 194,
"RightIdx": 0,
"Match": 132,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 195,
"RightIdx": 0,
"Match": 133,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/29/547038ffa4e8e4d9e82f7dfc6d152f75fcdc0af146913f0ba03875211f03/coverage-7.10.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5\", size = 215902, upload-time = \"2025-07-27T14:12:59.071Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e1/8a/7aaa8fbfaed900147987a424e112af2e7790e1ac9cd92601e5bd4e1ba60a/coverage-7.10.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2\", size = 257230, upload-time = \"2025-07-27T14:13:01.248Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 196,
"RightIdx": 0,
"Match": 134
},
{
"LeftIdx": 197,
"RightIdx": 0,
"Match": 135,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e5/1d/c252b5ffac44294e23a0d79dd5acf51749b39795ccc898faeabf7bee903f/coverage-7.10.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb\", size = 259194, upload-time = \"2025-07-27T14:13:03.247Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 136,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/16/ad/6c8d9f83d08f3bac2e7507534d0c48d1a4f52c18e6f94919d364edbdfa8f/coverage-7.10.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b\", size = 261316, upload-time = \"2025-07-27T14:13:04.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 198,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/d6/4e/f9bbf3a36c061e2e0e0f78369c006d66416561a33d2bee63345aee8ee65e/coverage-7.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea\", size = 258794, upload-time = \"2025-07-27T14:13:06.715Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 199,
"RightIdx": 0,
"Match": 137,
"Type": 3
},
{
"LeftIdx": 200,
"RightIdx": 0,
"Match": 138,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/87/82/e600bbe78eb2cb0541751d03cef9314bcd0897e8eea156219c39b685f869/coverage-7.10.1-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd\", size = 256869, upload-time = \"2025-07-27T14:13:08.933Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 139,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/5d/2fc9a9236c5268f68ac011d97cd3a5ad16cc420535369bedbda659fdd9b7/coverage-7.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d\", size = 257765, upload-time = \"2025-07-27T14:13:10.778Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 201,
"RightIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 202,
"RightIdx": 0,
"Match": 140,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/05/b4e00b2bd48a2dc8e1c7d2aea7455f40af2e36484ab2ef06deb85883e9fe/coverage-7.10.1-cp314-cp314t-win32.whl\", hash = \"sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47\", size = 218420, upload-time = \"2025-07-27T14:13:12.882Z\" },"
},
{
"LeftIdx": 203,
"RightIdx": 0,
"Match": 141,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/77/fb/d21d05f33ea27ece327422240e69654b5932b0b29e7fbc40fbab3cf199bf/coverage-7.10.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651\", size = 219536, upload-time = \"2025-07-27T14:13:14.718Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 204,
"RightIdx": 0,
"Match": 142,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a6/68/7fea94b141281ed8be3d1d5c4319a97f2befc3e487ce33657fc64db2c45e/coverage-7.10.1-cp314-cp314t-win_arm64.whl\", hash = \"sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab\", size = 217190, upload-time = \"2025-07-27T14:13:16.85Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 205,
"RightIdx": 0,
"Match": 143,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/0f/64/922899cff2c0fd3496be83fa8b81230f5a8d82a2ad30f98370b133c2c83b/coverage-7.10.1-py3-none-any.whl\", hash = \"sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7\", size = 206597, upload-time = \"2025-07-27T14:13:37.221Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 164,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053\", size = 219278, upload-time = \"2026-02-09T12:56:31.673Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 11,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11\", size = 219783, upload-time = \"2026-02-09T12:56:33.104Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 165
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 166,
"Match": 12,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa\", size = 250200, upload-time = \"2026-02-09T12:56:34.474Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 167,
"Match": 13,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7\", size = 252114, upload-time = \"2026-02-09T12:56:35.749Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00\", size = 254220, upload-time = \"2026-02-09T12:56:37.796Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 168,
"Match": 14
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 169,
"Match": 15,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef\", size = 256164, upload-time = \"2026-02-09T12:56:39.016Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 170,
"Match": 16,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903\", size = 250325, upload-time = \"2026-02-09T12:56:40.668Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 171,
"Match": 17,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f\", size = 251913, upload-time = \"2026-02-09T12:56:41.97Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 172,
"Match": 18,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299\", size = 249974, upload-time = \"2026-02-09T12:56:43.323Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 173,
"Match": 19,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl\", hash = \"sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505\", size = 253741, upload-time = \"2026-02-09T12:56:45.155Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 174,
"Match": 20,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl\", hash = \"sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6\", size = 249695, upload-time = \"2026-02-09T12:56:46.636Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9\", size = 250599, upload-time = \"2026-02-09T12:56:48.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 175,
"Match": 21,
"Type": 2
},
{
"RightIdx": 176,
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl\", hash = \"sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9\", size = 221780, upload-time = \"2026-02-09T12:56:50.479Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 177,
"Match": 23,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl\", hash = \"sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f\", size = 222715, upload-time = \"2026-02-09T12:56:51.815Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 178,
"Match": 24,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl\", hash = \"sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f\", size = 221385, upload-time = \"2026-02-09T12:56:53.194Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 179,
"Match": 25,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459\", size = 219449, upload-time = \"2026-02-09T12:56:54.889Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3\", size = 219810, upload-time = \"2026-02-09T12:56:56.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 180,
"Match": 26,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 181,
"Match": 27,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634\", size = 251308, upload-time = \"2026-02-09T12:56:57.858Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 182,
"Match": 28,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3\", size = 254052, upload-time = \"2026-02-09T12:56:59.754Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 29,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa\", size = 255165, upload-time = \"2026-02-09T12:57:01.287Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 183
},
{
"LeftIdx": 0,
"RightIdx": 184,
"Match": 30,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3\", size = 257432, upload-time = \"2026-02-09T12:57:02.637Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 31,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a\", size = 251716, upload-time = \"2026-02-09T12:57:04.056Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 185
},
{
"Match": 32,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7\", size = 253089, upload-time = \"2026-02-09T12:57:05.503Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 186
},
{
"RightIdx": 187,
"Match": 33,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc\", size = 251232, upload-time = \"2026-02-09T12:57:06.879Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 188,
"Match": 34,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl\", hash = \"sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47\", size = 255299, upload-time = \"2026-02-09T12:57:08.245Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 35,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl\", hash = \"sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985\", size = 250796, upload-time = \"2026-02-09T12:57:10.142Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 189
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 190,
"Match": 36,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0\", size = 252673, upload-time = \"2026-02-09T12:57:12.197Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl\", hash = \"sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246\", size = 221990, upload-time = \"2026-02-09T12:57:14.085Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 191,
"Match": 37,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 192,
"Match": 38,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl\", hash = \"sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126\", size = 222800, upload-time = \"2026-02-09T12:57:15.944Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 193,
"Match": 39,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl\", hash = \"sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d\", size = 221415, upload-time = \"2026-02-09T12:57:17.497Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 194,
"Match": 40,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9\", size = 219474, upload-time = \"2026-02-09T12:57:19.332Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 41,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac\", size = 219844, upload-time = \"2026-02-09T12:57:20.66Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 195
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 196,
"Match": 42,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea\", size = 250832, upload-time = \"2026-02-09T12:57:22.007Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b\", size = 253434, upload-time = \"2026-02-09T12:57:23.339Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 197,
"Match": 43
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525\", size = 254676, upload-time = \"2026-02-09T12:57:24.774Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 198,
"Match": 44
},
{
"LeftIdx": 0,
"RightIdx": 199,
"Match": 45,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242\", size = 256807, upload-time = \"2026-02-09T12:57:26.125Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 200,
"Match": 46,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148\", size = 251058, upload-time = \"2026-02-09T12:57:27.614Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a\", size = 252805, upload-time = \"2026-02-09T12:57:29.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 201,
"Match": 47,
"Type": 2
},
{
"RightIdx": 202,
"Match": 48,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23\", size = 250766, upload-time = \"2026-02-09T12:57:30.522Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 203,
"Match": 49,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl\", hash = \"sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80\", size = 254923, upload-time = \"2026-02-09T12:57:31.946Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 204,
"Match": 50,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl\", hash = \"sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea\", size = 250591, upload-time = \"2026-02-09T12:57:33.842Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 205,
"Match": 51,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a\", size = 252364, upload-time = \"2026-02-09T12:57:35.743Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 206,
"Match": 52,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl\", hash = \"sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d\", size = 222010, upload-time = \"2026-02-09T12:57:37.25Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 207,
"Match": 53,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl\", hash = \"sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd\", size = 222818, upload-time = \"2026-02-09T12:57:38.734Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl\", hash = \"sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af\", size = 221438, upload-time = \"2026-02-09T12:57:40.223Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 208,
"Match": 54,
"Type": 2
},
{
"LeftIdx": 0,
"RightIdx": 209,
"Match": 55,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d\", size = 220165, upload-time = \"2026-02-09T12:57:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 56,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12\", size = 220516, upload-time = \"2026-02-09T12:57:44.215Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 210
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b\", size = 261804, upload-time = \"2026-02-09T12:57:45.989Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 211,
"Match": 57,
"Type": 2
},
{
"RightIdx": 212,
"Match": 58,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9\", size = 263885, upload-time = \"2026-02-09T12:57:47.42Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": 59,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092\", size = 266308, upload-time = \"2026-02-09T12:57:49.345Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 213
},
{
"Match": 60,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9\", size = 267452, upload-time = \"2026-02-09T12:57:50.811Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 214
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26\", size = 261057, upload-time = \"2026-02-09T12:57:52.447Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 215,
"Match": 61
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 216,
"Match": 62,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2\", size = 263875, upload-time = \"2026-02-09T12:57:53.938Z\" },"
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940\", size = 261500, upload-time = \"2026-02-09T12:57:56.012Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 217,
"Match": 63,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 218,
"Match": 64,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c\", size = 265212, upload-time = \"2026-02-09T12:57:57.5Z\" },",
"Comments": null
},
{
"RightIdx": 219,
"Match": 65,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl\", hash = \"sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0\", size = 260398, upload-time = \"2026-02-09T12:57:59.027Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 220,
"Match": 66,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b\", size = 262584, upload-time = \"2026-02-09T12:58:01.129Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 221,
"Match": 67,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl\", hash = \"sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9\", size = 222688, upload-time = \"2026-02-09T12:58:02.736Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 222,
"Match": 68,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl\", hash = \"sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd\", size = 223746, upload-time = \"2026-02-09T12:58:05.362Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 223,
"Match": 69,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl\", hash = \"sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997\", size = 222003, upload-time = \"2026-02-09T12:58:06.952Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 224,
"Match": 70,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590/coverage-7.13.4-cp314-cp314-macosx_10_15_x86_64.whl\", hash = \"sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601\", size = 219522, upload-time = \"2026-02-09T12:58:08.623Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 225,
"Match": 71,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60/coverage-7.13.4-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689\", size = 219855, upload-time = \"2026-02-09T12:58:10.176Z\" },",
"Comments": null
},
{
"RightIdx": 226,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70/coverage-7.13.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c\", size = 250887, upload-time = \"2026-02-09T12:58:12.503Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 227,
"Match": 73,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab/coverage-7.13.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129\", size = 253396, upload-time = \"2026-02-09T12:58:14.615Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 228,
"Match": 74,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537/coverage-7.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552\", size = 254745, upload-time = \"2026-02-09T12:58:16.162Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff/coverage-7.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a\", size = 257055, upload-time = \"2026-02-09T12:58:17.892Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 229,
"Match": 75,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356\", size = 250911, upload-time = \"2026-02-09T12:58:19.495Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 230,
"Match": 76,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 231,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl\", hash = \"sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71\", size = 252754, upload-time = \"2026-02-09T12:58:21.064Z\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 232,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl\", hash = \"sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5\", size = 250720, upload-time = \"2026-02-09T12:58:22.622Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl\", hash = \"sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98\", size = 254994, upload-time = \"2026-02-09T12:58:24.548Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 233,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 234,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl\", hash = \"sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5\", size = 250531, upload-time = \"2026-02-09T12:58:26.271Z\" },"
},
{
"RightIdx": 235,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0\", size = 252189, upload-time = \"2026-02-09T12:58:27.807Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl\", hash = \"sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb\", size = 222258, upload-time = \"2026-02-09T12:58:29.441Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 236,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl\", hash = \"sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505\", size = 223073, upload-time = \"2026-02-09T12:58:31.026Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 237
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 238,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl\", hash = \"sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2\", size = 221638, upload-time = \"2026-02-09T12:58:32.599Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 239,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl\", hash = \"sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056\", size = 220246, upload-time = \"2026-02-09T12:58:34.181Z\" },",
"Comments": null
},
{
"RightIdx": 240,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc\", size = 220514, upload-time = \"2026-02-09T12:58:35.704Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"RightIdx": 241,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl\", hash = \"sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9\", size = 261877, upload-time = \"2026-02-09T12:58:37.864Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 242,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl\", hash = \"sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf\", size = 264004, upload-time = \"2026-02-09T12:58:39.492Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 243,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55\", size = 266408, upload-time = \"2026-02-09T12:58:41.852Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 244,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl\", hash = \"sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72\", size = 267544, upload-time = \"2026-02-09T12:58:44.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl\", hash = \"sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a\", size = 260980, upload-time = \"2026-02-09T12:58:45.721Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 245,
"Match": -1
},
{
"RightIdx": 246,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl\", hash = \"sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6\", size = 263871, upload-time = \"2026-02-09T12:58:47.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 247,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl\", hash = \"sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3\", size = 261472, upload-time = \"2026-02-09T12:58:48.995Z\" },"
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl\", hash = \"sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750\", size = 265210, upload-time = \"2026-02-09T12:58:51.178Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 248
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl\", hash = \"sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39\", size = 260319, upload-time = \"2026-02-09T12:58:53.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 249
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0\", size = 262638, upload-time = \"2026-02-09T12:58:55.258Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 250,
"Match": -1,
"Type": 2
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl\", hash = \"sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea\", size = 223040, upload-time = \"2026-02-09T12:58:56.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 251,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 252,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl\", hash = \"sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932\", size = 224148, upload-time = \"2026-02-09T12:58:58.645Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl\", hash = \"sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b\", size = 222172, upload-time = \"2026-02-09T12:59:00.396Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 253,
"Match": -1
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl\", hash = \"sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0\", size = 211242, upload-time = \"2026-02-09T12:59:02.032Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 254,
"Match": -1,
"Type": 2
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 206,
"RightIdx": 255,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 207,
"RightIdx": 256,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 208,
"RightIdx": 257,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 209,
"RightIdx": 258,
"Match": 0,
"Type": 1,
"Content": " name = \"dill\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 210,
"RightIdx": 0,
"Match": 173,
"Type": 3,
"Content": "-version = \"0.4.0\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 259,
"Match": 172,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 260,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 211
},
{
"LeftIdx": 212,
"RightIdx": 0,
"Match": 176,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz\", hash = \"sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0\", size = 186976, upload-time = \"2025-04-16T00:41:48.867Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz\", hash = \"sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa\", size = 187315, upload-time = \"2026-01-19T02:36:56.85Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 261,
"Match": 175,
"Type": 2
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 213,
"RightIdx": 262,
"Match": 0
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 214,
"RightIdx": 0,
"Match": 191,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl\", hash = \"sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049\", size = 119668, upload-time = \"2025-04-16T00:41:47.671Z\" },"
},
{
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 215,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 216,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 217,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-name = \"exceptiongroup\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 218,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-version = \"1.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 219,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 220,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"LeftIdx": 221,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"typing-extensions\", marker = \"python_full_version < '3.13'\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 222,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 223
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz\", hash = \"sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88\", size = 29749, upload-time = \"2025-05-10T17:42:51.123Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 224
},
{
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 225,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl\", hash = \"sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10\", size = 16674, upload-time = \"2025-05-10T17:42:49.33Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 226,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 263,
"Match": 178,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl\", hash = \"sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d\", size = 120019, upload-time = \"2026-01-19T02:36:55.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 227,
"RightIdx": 264
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 228,
"RightIdx": 265,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 229,
"RightIdx": 266
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 230,
"RightIdx": 267,
"Match": 0,
"Type": 1,
"Content": " name = \"idna\""
},
{
"Type": 3,
"Content": "-version = \"3.10\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 231,
"RightIdx": 0,
"Match": 197
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 268,
"Match": 196,
"Type": 2,
"Content": "+version = \"3.11\"",
"Comments": null
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 232,
"RightIdx": 269,
"Match": 0,
"Type": 1
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz\", hash = \"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9\", size = 190490, upload-time = \"2024-09-15T18:07:39.745Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 233,
"RightIdx": 0,
"Match": 200,
"Type": 3
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz\", hash = \"sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902\", size = 194582, upload-time = \"2025-10-12T14:55:20.501Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 270,
"Match": 199,
"Type": 2
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 234,
"RightIdx": 271,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"LeftIdx": 235,
"RightIdx": 0,
"Match": 203,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl\", hash = \"sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3\", size = 70442, upload-time = \"2024-09-15T18:07:37.964Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 272,
"Match": 202,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl\", hash = \"sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea\", size = 71008, upload-time = \"2025-10-12T14:55:18.883Z\" },",
"Comments": null
},
{
"LeftIdx": 236,
"RightIdx": 273,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 237,
"RightIdx": 274,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 238,
"RightIdx": 275,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"LeftIdx": 239,
"RightIdx": 276,
"Match": 0,
"Type": 1,
"Content": " name = \"iniconfig\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 240,
"RightIdx": 0,
"Match": 209,
"Type": 3,
"Content": "-version = \"2.1.0\""
},
{
"LeftIdx": 0,
"RightIdx": 277,
"Match": 208,
"Type": 2,
"Content": "+version = \"2.3.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 241,
"RightIdx": 278,
"Match": 0
},
{
"RightIdx": 0,
"Match": 212,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz\", hash = \"sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7\", size = 4793, upload-time = \"2025-03-19T20:09:59.721Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 242
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz\", hash = \"sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730\", size = 20503, upload-time = \"2025-10-18T21:55:43.219Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 279,
"Match": 211
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 243,
"RightIdx": 280,
"Match": 0,
"Type": 1,
"Content": " wheels = ["
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 244,
"RightIdx": 0,
"Match": 215,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl\", hash = \"sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760\", size = 6050, upload-time = \"2025-03-19T20:10:01.071Z\" },"
},
{
"LeftIdx": 0,
"RightIdx": 281,
"Match": 214,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl\", hash = \"sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12\", size = 7484, upload-time = \"2025-10-18T21:55:41.639Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 245,
"RightIdx": 282,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 246,
"RightIdx": 283,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 247,
"RightIdx": 284,
"Match": 0
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -249,31 +286,8 @@ name = \"ipilot\"",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 247,
"LastRightIdx": 284,
"LeftIdx": 249,
"RightIdx": 286,
"LeftHunkSize": 31,
"RightHunkSize": 8,
"HiddenCommentIDs": null,
"Path": "uv.lock"
}
},
{
"Match": 0,
"Type": 1,
"Content": " version = \"0.0.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 249,
"RightIdx": 286
},
{
"LeftIdx": 250,
"RightIdx": 287,
"Match": 0,
"Type": 1,
"Content": " source = { editable = \".\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 288,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 251
},
{
"Type": 3,
"Content": "- { name = \"astroid\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 252,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"attrs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 253,
"RightIdx": 0
},
{
"Content": "- { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 254,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 255,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"charset-normalizer\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { name = \"click\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 256,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { name = \"dill\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 257,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"exceptiongroup\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 258,
"RightIdx": 0
},
{
"LeftIdx": 259,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"iniconfig\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 260,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"lazy-object-proxy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 261
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 262,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mccabe\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 263,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 264,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"packaging\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 265,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 266,
"RightIdx": 0
},
{
"LeftIdx": 267,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 268,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"py\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"pyparsing\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 269,
"RightIdx": 0
},
{
"Match": 0,
"Type": 1,
"Content": " { name = \"requests\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 270,
"RightIdx": 289
},
{
"LeftIdx": 271,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"six\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 272,
"RightIdx": 290,
"Match": 0,
"Type": 1,
"Content": " { name = \"tabulate\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 273
},
{
"LeftIdx": 274,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 275,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"wrapt\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 276
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 277,
"RightIdx": 291
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 278,
"RightIdx": 292
},
{
"Match": 0,
"Type": 1,
"Content": " [package.dev-dependencies]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 279,
"RightIdx": 293
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -288,67 +302,27 @@ dev = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 279,
"LastRightIdx": 293,
"LeftIdx": 288,
"RightIdx": 302,
"LeftHunkSize": 67,
"RightHunkSize": 27,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 288,
"RightIdx": 302,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " [package.metadata]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 289,
"RightIdx": 303
},
{
"Match": 0,
"Type": 1,
"Content": " requires-dist = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 290,
"RightIdx": 304
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 291,
"RightIdx": 0,
"Match": 29,
"Type": 3,
"Content": "- { name = \"astroid\", specifier = \"==3.3.11\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 292,
"RightIdx": 0,
"Match": 30,
"Type": 3,
"Content": "- { name = \"attrs\", specifier = \"==25.3.0\" },"
},
{
"LeftIdx": 293,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"certifi\", specifier = \"==2025.7.14\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 294,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"charset-normalizer\", specifier = \"==3.4.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { name = \"click\", specifier = \"==8.2.2\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 295,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 296,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"dill\", specifier = \"==0.4.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { name = \"exceptiongroup\", specifier = \"==1.3.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 297,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"idna\", specifier = \"==3.10\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 298,
"RightIdx": 0
},
{
"LeftIdx": 299,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"iniconfig\", specifier = \"==2.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 300,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"lazy-object-proxy\", specifier = \"==1.11.0\" },"
},
{
"LeftIdx": 301,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mccabe\", specifier = \"==0.7.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 302,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"mypy-extensions\", specifier = \"==1.1.0\" },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"packaging\", specifier = \"==25.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 303
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 304,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pathspec\", specifier = \"==0.12.1\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 305,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"platformdirs\", specifier = \"==4.3.8\" },"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"pluggy\", specifier = \"==1.6.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 306
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"py\", specifier = \"==1.11.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 307,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"pyparsing\", specifier = \"==3.2.3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 308,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 309,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"requests\", specifier = \"==2.32.4\" },",
"Comments": null
},
{
"LeftIdx": 310,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"six\", specifier = \"==1.17.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 311,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tabulate\", specifier = \"==0.9.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomli\", specifier = \"==2.2.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 312,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 313,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"tomlkit\", specifier = \"==0.13.3\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 314,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"urllib3\", specifier = \"==2.5.0\" },",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 315,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { name = \"wrapt\", specifier = \"==1.17.2\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 305,
"Match": 4,
"Type": 2,
"Content": "+ { name = \"requests\", specifier = \"==2.32.5\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 306,
"Match": 5,
"Type": 2,
"Content": "+ { name = \"tabulate\", specifier = \"==0.10.0\" },",
"Comments": null
},
{
"LeftIdx": 316,
"RightIdx": 307,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 308,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 317
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 318,
"RightIdx": 309,
"Match": 0,
"Type": 1,
"Content": " [package.metadata.requires-dev]"
},
{
"Match": 0,
"Type": 1,
"Content": " dev = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 319,
"RightIdx": 310
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 320,
"RightIdx": 0,
"Match": 36,
"Type": 3,
"Content": "- { name = \"black\", specifier = \">=25.1.0,<25.2.0\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 311,
"Match": 35,
"Type": 2,
"Content": "+ { name = \"black\", specifier = \">=26.3.0,<26.3.1\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " { name = \"coverage\", specifier = \">=7.5.0,<8.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 321,
"RightIdx": 312,
"Match": 0,
"Type": 1
},
{
"Type": 3,
"Content": "- { name = \"pylint\", specifier = \">=3.1.0,<4.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 322,
"RightIdx": 0,
"Match": 39
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 313,
"Match": 38,
"Type": 2,
"Content": "+ { name = \"pylint\", specifier = \">=4.0.4,<4.1.0\" },",
"Comments": null
},
{
"LeftIdx": 323,
"RightIdx": 314,
"Match": 0,
"Type": 1,
"Content": " { name = \"pylint-exit\", specifier = \">=1.2.0,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 324,
"RightIdx": 0,
"Match": 42,
"Type": 3,
"Content": "- { name = \"pytest\", specifier = \">=8.1.1,<9.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+ { name = \"pytest\", specifier = \">=9.0.0,<9.1.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 315,
"Match": 41,
"Type": 2
},
{
"LeftIdx": 325,
"RightIdx": 316,
"Match": 0,
"Type": 1,
"Content": " { name = \"requests-mock\", specifier = \">=1.12.1,<2.0.0\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 326,
"RightIdx": 317,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 327,
"RightIdx": 318,
"Match": 0
},
{
"RightIdx": 319,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 328
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 329,
"RightIdx": 320,
"Match": 0,
"Type": 1,
"Content": " name = \"isort\""
},
{
"LeftIdx": 330,
"RightIdx": 0,
"Match": 49,
"Type": 3,
"Content": "-version = \"6.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"8.0.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 321,
"Match": 48
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 331,
"RightIdx": 322,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz\", hash = \"sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450\", size = 821955, upload-time = \"2025-02-26T21:13:16.955Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 332,
"RightIdx": 0,
"Match": 52,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 323,
"Match": 51,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d/isort-8.0.1.tar.gz\", hash = \"sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d\", size = 769592, upload-time = \"2026-02-28T10:08:20.685Z\" }",
"Comments": null
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 333,
"RightIdx": 324,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 334,
"RightIdx": 0,
"Match": 72,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl\", hash = \"sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615\", size = 94186, upload-time = \"2025-02-26T21:13:14.911Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 335,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 336,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 337
},
{
"LeftIdx": 338,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"lazy-object-proxy\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-version = \"1.11.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 339,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 340,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/57/f9/1f56571ed82fb324f293661690635cf42c41deb8a70a6c9e6edc3e9bb3c8/lazy_object_proxy-1.11.0.tar.gz\", hash = \"sha256:18874411864c9fbbbaa47f9fc1dd7aea754c86cfde21278ef427639d1dd78e9c\", size = 44736, upload-time = \"2025-04-16T16:53:48.482Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 341
},
{
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 342,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 343,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/51/f6/eb645ca1ff7408bb69e9b1fe692cce1d74394efdbb40d6207096c0cd8381/lazy_object_proxy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:090935756cc041e191f22f4f9c7fd4fe9a454717067adf5b1bbd2ce3046b556e\", size = 28047, upload-time = \"2025-04-16T16:53:34.679Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 344,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/13/9c/aabbe1e8b99b8b0edb846b49a517edd636355ac97364419d9ba05b8fa19f/lazy_object_proxy-1.11.0-cp311-cp311-win_amd64.whl\", hash = \"sha256:76ec715017f06410f57df442c1a8d66e6b5f7035077785b129817f5ae58810a4\", size = 28440, upload-time = \"2025-04-16T16:53:36.113Z\" },"
},
{
"LeftIdx": 345,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4d/24/dae4759469e9cd318fef145f7cfac7318261b47b23a4701aa477b0c3b42c/lazy_object_proxy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:9a9f39098e93a63618a79eef2889ae3cf0605f676cd4797fdfd49fcd7ddc318b\", size = 28142, upload-time = \"2025-04-16T16:53:37.663Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/de/0c/645a881f5f27952a02f24584d96f9f326748be06ded2cee25f8f8d1cd196/lazy_object_proxy-1.11.0-cp312-cp312-win_amd64.whl\", hash = \"sha256:ee13f67f4fcd044ef27bfccb1c93d39c100046fec1fad6e9a1fcdfd17492aeb3\", size = 28380, upload-time = \"2025-04-16T16:53:39.07Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 346
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a8/0f/6e004f928f7ff5abae2b8e1f68835a3870252f886e006267702e1efc5c7b/lazy_object_proxy-1.11.0-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:fd4c84eafd8dd15ea16f7d580758bc5c2ce1f752faec877bb2b1f9f827c329cd\", size = 28149, upload-time = \"2025-04-16T16:53:40.135Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 347
},
{
"LeftIdx": 348,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/63/cb/b8363110e32cc1fd82dc91296315f775d37a39df1c1cfa976ec1803dac89/lazy_object_proxy-1.11.0-cp313-cp313-win_amd64.whl\", hash = \"sha256:d2503427bda552d3aefcac92f81d9e7ca631e680a2268cbe62cd6a58de6409b7\", size = 28389, upload-time = \"2025-04-16T16:53:43.612Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 349,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7b/89/68c50fcfd81e11480cd8ee7f654c9bd790a9053b9a0efe9983d46106f6a9/lazy_object_proxy-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:0613116156801ab3fccb9e2b05ed83b08ea08c2517fdc6c6bc0d4697a1a376e3\", size = 28777, upload-time = \"2025-04-16T16:53:41.371Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 350,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/d0/7e967689e24de8ea6368ec33295f9abc94b9f3f0cd4571bfe148dc432190/lazy_object_proxy-1.11.0-cp313-cp313t-win_amd64.whl\", hash = \"sha256:bb03c507d96b65f617a6337dedd604399d35face2cdf01526b913fb50c4cb6e8\", size = 29598, upload-time = \"2025-04-16T16:53:42.513Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 351,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e7/1e/fb441c07b6662ec1fc92b249225ba6e6e5221b05623cb0131d082f782edc/lazy_object_proxy-1.11.0-py3-none-any.whl\", hash = \"sha256:a56a5093d433341ff7da0e89f9b486031ccd222ec8e52ec84d0ec1cdc819674b\", size = 16635, upload-time = \"2025-04-16T16:53:47.198Z\" },",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 325,
"Match": 54,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416/isort-8.0.1-py3-none-any.whl\", hash = \"sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75\", size = 89733, upload-time = \"2026-02-28T10:08:19.466Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 352,
"RightIdx": 326,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 327,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 353
},
{
"LeftIdx": 354,
"RightIdx": 328,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -371,29 +345,29 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"RightIdx": 345,
"LeftHunkSize": 29,
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 354,
"LastRightIdx": 328,
"LeftIdx": 371
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 371,
"RightIdx": 345,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 372,
"RightIdx": 346,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 373,
"RightIdx": 347,
"Match": 0,
"Type": 1,
"Content": " name = \"packaging\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": 5,
"Type": 3,
"Content": "-version = \"25.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 374,
"RightIdx": 0
},
{
"Match": 4,
"Type": 2,
"Content": "+version = \"26.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 348
},
{
"LeftIdx": 375,
"RightIdx": 349,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 376,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz\", hash = \"sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f\", size = 165727, upload-time = \"2025-04-19T11:48:59.673Z\" }",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 350,
"Match": 7,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz\", hash = \"sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4\", size = 143416, upload-time = \"2026-01-21T20:50:39.064Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 377,
"RightIdx": 351,
"Match": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl\", hash = \"sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484\", size = 66469, upload-time = \"2025-04-19T11:48:57.875Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 378,
"RightIdx": 0,
"Match": 11
},
{
"LeftIdx": 0,
"RightIdx": 352,
"Match": 10,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl\", hash = \"sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529\", size = 74366, upload-time = \"2026-01-21T20:50:37.788Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 379,
"RightIdx": 353,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 354,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 380
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 381,
"RightIdx": 355,
"Match": 0,
"Type": 1,
"Content": " [[package]]"
},
{
"RightIdx": 356,
"Match": 0,
"Type": 1,
"Content": " name = \"pathspec\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 382
},
{
"Type": 3,
"Content": "-version = \"0.12.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 383,
"RightIdx": 0,
"Match": 17
},
{
"LeftIdx": 0,
"RightIdx": 357,
"Match": 16,
"Type": 2,
"Content": "+version = \"1.0.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 384,
"RightIdx": 358,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 385,
"RightIdx": 0,
"Match": 20,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz\", hash = \"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712\", size = 51043, upload-time = \"2023-12-10T22:30:45Z\" }",
"Comments": null
},
{
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz\", hash = \"sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645\", size = 131200, upload-time = \"2026-01-27T03:59:46.938Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 359,
"Match": 19
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 386,
"RightIdx": 360,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 387,
"RightIdx": 0,
"Match": 23,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl\", hash = \"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08\", size = 31191, upload-time = \"2023-12-10T22:30:43.14Z\" },"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 361,
"Match": 22,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl\", hash = \"sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723\", size = 55206, upload-time = \"2026-01-27T03:59:45.137Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 388,
"RightIdx": 362,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 389,
"RightIdx": 363,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 390,
"RightIdx": 364,
"Match": 0,
"Type": 1
},
{
"RightIdx": 365,
"Match": 0,
"Type": 1,
"Content": " name = \"platformdirs\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 391
},
{
"Type": 3,
"Content": "-version = \"4.3.8\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 392,
"RightIdx": 0,
"Match": 29
},
{
"Match": 28,
"Type": 2,
"Content": "+version = \"4.9.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 366
},
{
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 393,
"RightIdx": 367
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz\", hash = \"sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc\", size = 21362, upload-time = \"2025-05-07T22:47:42.121Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 394,
"RightIdx": 0,
"Match": 32
},
{
"LeftIdx": 0,
"RightIdx": 368,
"Match": 31,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz\", hash = \"sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291\", size = 28394, upload-time = \"2026-02-16T03:56:10.574Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 369,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 395
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 396,
"RightIdx": 0,
"Match": 35,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl\", hash = \"sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4\", size = 18567, upload-time = \"2025-05-07T22:47:40.376Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl\", hash = \"sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd\", size = 21168, upload-time = \"2026-02-16T03:56:08.891Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 370,
"Match": 34
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 397,
"RightIdx": 371,
"Match": 0
},
{
"RightIdx": 372,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 398
},
{
"LeftIdx": 399,
"RightIdx": 373,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -405,15 +379,6 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 399,
"LastRightIdx": 373,
"LeftIdx": 405,
"RightIdx": 379,
"LeftHunkSize": 15,
"RightHunkSize": 6,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl\", hash = \"sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746\", size = 20538, upload-time = \"2025-05-15T12:30:06.134Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 405,
"RightIdx": 379
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 406,
"RightIdx": 380,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 407,
"RightIdx": 381,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 408
},
{
"LeftIdx": 409,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"py\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 410,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.11.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 411,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz\", hash = \"sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719\", size = 207796, upload-time = \"2021-11-04T17:17:01.377Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 412,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 413,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl\", hash = \"sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378\", size = 98708, upload-time = \"2021-11-04T17:17:00.152Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 414,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 415,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]"
},
{
"LeftIdx": 416,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 417,
"RightIdx": 382,
"Match": 0,
"Type": 1
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"pygments\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 418,
"RightIdx": 383
},
{
"Content": " version = \"2.19.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 419,
"RightIdx": 384,
"Match": 0,
"Type": 1
}
]
},
{
"Lines": [
{
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -425,7 +390,7 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 419,
"LastRightIdx": 384,
"LeftIdx": 425,
"RightIdx": 390,
"LeftHunkSize": 7,
"RightHunkSize": 7,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0
},
{
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 425,
"RightIdx": 390,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 426,
"RightIdx": 391,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 427,
"RightIdx": 392,
"Match": 0,
"Type": 1,
"Content": " name = \"pylint\""
},
{
"LeftIdx": 428,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-version = \"3.3.7\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"4.0.5\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 393,
"Match": 4
},
{
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 429,
"RightIdx": 394,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 430,
"RightIdx": 395,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 431,
"RightIdx": 396,
"Match": 0,
"Type": 1,
"Content": " { name = \"astroid\" },",
"Comments": null
}
],
"FileName": "uv.lock"
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -436,9 +401,9 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 431,
"LastRightIdx": 396,
"LeftIdx": 436,
"RightIdx": 401,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " { name = \"platformdirs\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 436,
"RightIdx": 401,
"Match": 0
},
{
"RightIdx": 402,
"Match": 0,
"Type": 1,
"Content": " { name = \"tomlkit\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 437
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 438,
"RightIdx": 403,
"Match": 0
},
{
"LeftIdx": 439,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3/pylint-3.3.7.tar.gz\", hash = \"sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559\", size = 1520709, upload-time = \"2025-05-04T17:07:51.089Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 404,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d/pylint-4.0.5.tar.gz\", hash = \"sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c\", size = 1572474, upload-time = \"2026-02-20T09:07:33.621Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 440,
"RightIdx": 405,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 441,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/e8/83/bff755d09e31b5d25cc7fdc4bf3915d1a404e181f1abf0359af376845c24/pylint-3.3.7-py3-none-any.whl\", hash = \"sha256:43860aafefce92fca4cf6b61fe199cdc5ae54ea28f9bf4cd49de267b5195803d\", size = 522565, upload-time = \"2025-05-04T17:07:48.714Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 406,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf/pylint-4.0.5-py3-none-any.whl\", hash = \"sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2\", size = 536694, upload-time = \"2026-02-20T09:07:31.028Z\" },"
},
{
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 442,
"RightIdx": 407
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 443,
"RightIdx": 408
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 444,
"RightIdx": 409,
"Match": 0,
"Type": 1
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Type": 4,
"Content": "@@ -450,18 +415,9 @@ wheels = [",
"Comments": null,
"SectionInfo": {
"LeftHunkSize": 18,
"RightHunkSize": 9,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 444,
"LastRightIdx": 409,
"LeftIdx": 450,
"RightIdx": 415
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0
},
{
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl\", hash = \"sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe\", size = 6340, upload-time = \"2020-07-15T22:18:00.11Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 450,
"RightIdx": 415,
"Match": 0
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 451,
"RightIdx": 416,
"Match": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 452,
"RightIdx": 417,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 453
},
{
"LeftIdx": 454,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"pyparsing\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 455,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"3.2.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 456,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz\", hash = \"sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be\", size = 1088608, upload-time = \"2025-03-25T05:01:28.114Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 457
},
{
"LeftIdx": 458,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 459,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl\", hash = \"sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf\", size = 111120, upload-time = \"2025-03-25T05:01:24.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 460,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 461,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 462,
"RightIdx": 418,
"Match": 0,
"Type": 1
},
{
"RightIdx": 419,
"Match": 0,
"Type": 1,
"Content": " name = \"pytest\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 463
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 464,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "-version = \"8.4.1\"",
"Comments": null
},
{
"LeftIdx": 0,
"RightIdx": 420,
"Match": 15,
"Type": 2,
"Content": "+version = \"9.0.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 465,
"RightIdx": 421,
"Match": 0
},
{
"RightIdx": 422,
"Match": 0,
"Type": 1,
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 466
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 467,
"RightIdx": 423,
"Match": 0,
"Type": 1,
"Content": " { name = \"colorama\", marker = \"sys_platform == 'win32'\" },",
"Comments": null
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Content": "@@ -470,14 +426,48 @@ dependencies = [",
"Comments": null,
"SectionInfo": {
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 467,
"LastRightIdx": 423,
"LeftIdx": 470,
"RightIdx": 426,
"LeftHunkSize": 14,
"RightHunkSize": 48
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
},
{
"LeftIdx": 470,
"RightIdx": 426,
"Match": 0,
"Type": 1,
"Content": " { name = \"pluggy\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 471,
"RightIdx": 427,
"Match": 0,
"Type": 1,
"Content": " { name = \"pygments\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 472,
"RightIdx": 428,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz\", hash = \"sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c\", size = 1517714, upload-time = \"2025-06-18T05:48:06.109Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 473
},
{
"RightIdx": 429,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz\", hash = \"sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11\", size = 1568901, upload-time = \"2025-12-06T21:30:51.014Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 474,
"RightIdx": 430,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl\", hash = \"sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7\", size = 365474, upload-time = \"2025-06-18T05:48:03.955Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 475,
"RightIdx": 0,
"Match": 8,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 431,
"Match": 7,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl\", hash = \"sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b\", size = 374801, upload-time = \"2025-12-06T21:30:49.154Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 432,
"Match": -1
},
{
"Content": "+",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 433,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 434
},
{
"LeftIdx": 0,
"RightIdx": 435,
"Match": -1,
"Type": 2,
"Content": "+name = \"pytokens\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 2,
"Content": "+version = \"0.4.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 436
},
{
"Content": "+source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 437,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz\", hash = \"sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a\", size = 23015, upload-time = \"2026-01-30T01:03:45.924Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 438
},
{
"Content": "+wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 439,
"Match": -1,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 440,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440\", size = 160864, upload-time = \"2026-01-30T01:02:57.882Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc\", size = 248565, upload-time = \"2026-01-30T01:02:59.912Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 441,
"Match": -1
},
{
"RightIdx": 442,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d\", size = 260824, upload-time = \"2026-01-30T01:03:01.471Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16\", size = 264075, upload-time = \"2026-01-30T01:03:04.143Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 443
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 444,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6\", size = 103323, upload-time = \"2026-01-30T01:03:05.412Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 445,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083\", size = 160663, upload-time = \"2026-01-30T01:03:06.473Z\" },"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1\", size = 255626, upload-time = \"2026-01-30T01:03:08.177Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 446,
"Match": -1
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1\", size = 269779, upload-time = \"2026-01-30T01:03:09.756Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 447
},
{
"LeftIdx": 0,
"RightIdx": 448,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9\", size = 268076, upload-time = \"2026-01-30T01:03:10.957Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 449,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68\", size = 103552, upload-time = \"2026-01-30T01:03:12.066Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 450,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b\", size = 160720, upload-time = \"2026-01-30T01:03:13.843Z\" },",
"Comments": null
},
{
"RightIdx": 451,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f\", size = 254204, upload-time = \"2026-01-30T01:03:14.886Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 452,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1\", size = 268423, upload-time = \"2026-01-30T01:03:15.936Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4\", size = 266859, upload-time = \"2026-01-30T01:03:17.458Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 453,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 454,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78\", size = 103520, upload-time = \"2026-01-30T01:03:18.652Z\" },"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 455,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl\", hash = \"sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321\", size = 160821, upload-time = \"2026-01-30T01:03:19.684Z\" },"
},
{
"RightIdx": 456,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa\", size = 254263, upload-time = \"2026-01-30T01:03:20.834Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 457,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d\", size = 268071, upload-time = \"2026-01-30T01:03:21.888Z\" },",
"Comments": null
},
{
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl\", hash = \"sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324\", size = 271716, upload-time = \"2026-01-30T01:03:23.633Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 458,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 459,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl\", hash = \"sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9\", size = 104539, upload-time = \"2026-01-30T01:03:24.788Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl\", hash = \"sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb\", size = 168474, upload-time = \"2026-01-30T01:03:26.428Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 460,
"Match": -1,
"Type": 2
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl\", hash = \"sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3\", size = 290473, upload-time = \"2026-01-30T01:03:27.415Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 461,
"Match": -1,
"Type": 2
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl\", hash = \"sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975\", size = 303485, upload-time = \"2026-01-30T01:03:28.558Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 462
},
{
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl\", hash = \"sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a\", size = 306698, upload-time = \"2026-01-30T01:03:29.653Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 463
},
{
"RightIdx": 464,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl\", hash = \"sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918\", size = 116287, upload-time = \"2026-01-30T01:03:30.912Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 0,
"RightIdx": 465,
"Match": -1,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl\", hash = \"sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de\", size = 13729, upload-time = \"2026-01-30T01:03:45.029Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 466,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 476
},
{
"RightIdx": 467,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 477
},
{
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 478,
"RightIdx": 468,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 479,
"RightIdx": 469,
"Match": 0,
"Type": 1,
"Content": " name = \"requests\"",
"Comments": null
},
{
"LeftIdx": 480,
"RightIdx": 0,
"Match": 48,
"Type": 3,
"Content": "-version = \"2.32.4\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 470,
"Match": 47,
"Type": 2,
"Content": "+version = \"2.32.5\""
},
{
"RightIdx": 471,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 481
},
{
"Content": " dependencies = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 482,
"RightIdx": 472,
"Match": 0,
"Type": 1
},
{
"LeftIdx": 483,
"RightIdx": 473,
"Match": 0,
"Type": 1,
"Content": " { name = \"certifi\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"Comments": null,
"SectionInfo": {
"Path": "uv.lock",
"LastLeftIdx": 483,
"LastRightIdx": 473,
"LeftIdx": 485,
"RightIdx": 475,
"LeftHunkSize": 9,
"RightHunkSize": 9,
"HiddenCommentIDs": null
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -485,9 +475,9 @@ dependencies = ["
},
{
"RightIdx": 475,
"Match": 0,
"Type": 1,
"Content": " { name = \"idna\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 485
},
{
"RightIdx": 476,
"Match": 0,
"Type": 1,
"Content": " { name = \"urllib3\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 486
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 487,
"RightIdx": 477,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 488,
"RightIdx": 0,
"Match": 5,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz\", hash = \"sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422\", size = 135258, upload-time = \"2025-06-09T16:43:07.34Z\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 478,
"Match": 4,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz\", hash = \"sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf\", size = 134517, upload-time = \"2025-08-18T20:46:02.573Z\" }"
},
{
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 489,
"RightIdx": 479,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 490,
"RightIdx": 0,
"Match": 8,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl\", hash = \"sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c\", size = 64847, upload-time = \"2025-06-09T16:43:05.728Z\" },",
"Comments": null
},
{
"Content": "+ { url = \"https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl\", hash = \"sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6\", size = 64738, upload-time = \"2025-08-18T20:46:00.542Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 480,
"Match": 7,
"Type": 2
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 491,
"RightIdx": 481,
"Match": 0,
"Type": 1,
"Content": " ]"
},
{
"LeftIdx": 492,
"RightIdx": 482,
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 483,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 493
}
]
},
{
"FileName": "uv.lock",
"Lines": [
{
"SectionInfo": {
"RightHunkSize": 29,
"HiddenCommentIDs": null,
"Path": "uv.lock",
"LastLeftIdx": 493,
"LastRightIdx": 483,
"LeftIdx": 502,
"RightIdx": 492,
"LeftHunkSize": 139
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4,
"Content": "@@ -502,139 +492,29 @@ wheels = [",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 502,
"RightIdx": 492,
"Match": 0,
"Type": 1,
"Content": " { url = \"https://files.pythonhosted.org/packages/97/ec/889fbc557727da0c34a33850950310240f2040f3b1955175fdb2b36a8910/requests_mock-1.12.1-py2.py3-none-any.whl\", hash = \"sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563\", size = 27695, upload-time = \"2024-03-29T03:54:27.64Z\" },"
},
{
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 503,
"RightIdx": 493,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 504,
"RightIdx": 494
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 505,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"six\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 506
},
{
"Content": "-version = \"1.17.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 507,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 508,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz\", hash = \"sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81\", size = 34031, upload-time = \"2024-12-04T17:35:28.174Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 509,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 510,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 511,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl\", hash = \"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274\", size = 11050, upload-time = \"2024-12-04T17:35:26.475Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 512,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 513
},
{
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 514,
"RightIdx": 495,
"Match": 0
},
{
"Match": 0,
"Type": 1,
"Content": " name = \"tabulate\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 515,
"RightIdx": 496
},
{
"LeftIdx": 516,
"RightIdx": 0,
"Match": 16,
"Type": 3,
"Content": "-version = \"0.9.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"0.10.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 497,
"Match": 15
},
{
"LeftIdx": 517,
"RightIdx": 498,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz\", hash = \"sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c\", size = 81090, upload-time = \"2022-10-06T17:21:48.54Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 518,
"RightIdx": 0,
"Match": 19,
"Type": 3
},
{
"LeftIdx": 0,
"RightIdx": 499,
"Match": 18,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/46/58/8c37dea7bbf769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6/tabulate-0.10.0.tar.gz\", hash = \"sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d\", size = 91754, upload-time = \"2026-03-04T18:55:34.402Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 500,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 519
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl\", hash = \"sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f\", size = 35252, upload-time = \"2022-10-06T17:21:44.262Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 520,
"RightIdx": 0,
"Match": 61
},
{
"LeftIdx": 521,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 522,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 523,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 524,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"tomli\"",
"Comments": null
},
{
"Content": "-version = \"2.2.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 525,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 526,
"RightIdx": 0,
"Match": -1
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz\", hash = \"sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff\", size = 17175, upload-time = \"2024-11-27T22:38:36.873Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 527
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 528,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249\", size = 131077, upload-time = \"2024-11-27T22:37:54.956Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 529,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 530,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6\", size = 123429, upload-time = \"2024-11-27T22:37:56.698Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a\", size = 226067, upload-time = \"2024-11-27T22:37:57.63Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 531,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee\", size = 236030, upload-time = \"2024-11-27T22:37:59.344Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 532,
"RightIdx": 0,
"Match": -1
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e\", size = 240898, upload-time = \"2024-11-27T22:38:00.429Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 533,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 534,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4\", size = 229894, upload-time = \"2024-11-27T22:38:02.094Z\" },",
"Comments": null
},
{
"LeftIdx": 535,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106\", size = 245319, upload-time = \"2024-11-27T22:38:03.206Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8\", size = 238273, upload-time = \"2024-11-27T22:38:04.217Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 536,
"RightIdx": 0
},
{
"LeftIdx": 537,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl\", hash = \"sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff\", size = 98310, upload-time = \"2024-11-27T22:38:05.908Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl\", hash = \"sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b\", size = 108309, upload-time = \"2024-11-27T22:38:06.812Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 538,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 539,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea\", size = 132762, upload-time = \"2024-11-27T22:38:07.731Z\" },",
"Comments": null
},
{
"LeftIdx": 540,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8\", size = 123453, upload-time = \"2024-11-27T22:38:09.384Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 541,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192\", size = 233486, upload-time = \"2024-11-27T22:38:10.329Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222\", size = 242349, upload-time = \"2024-11-27T22:38:11.443Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 542,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77\", size = 252159, upload-time = \"2024-11-27T22:38:13.099Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 543,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 544,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6\", size = 237243, upload-time = \"2024-11-27T22:38:14.766Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd\", size = 259645, upload-time = \"2024-11-27T22:38:15.843Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 545
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 546,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e\", size = 244584, upload-time = \"2024-11-27T22:38:17.645Z\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl\", hash = \"sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98\", size = 98875, upload-time = \"2024-11-27T22:38:19.159Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 547,
"RightIdx": 0
},
{
"LeftIdx": 548,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl\", hash = \"sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4\", size = 109418, upload-time = \"2024-11-27T22:38:20.064Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7\", size = 132708, upload-time = \"2024-11-27T22:38:21.659Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 549,
"RightIdx": 0
},
{
"LeftIdx": 550,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c\", size = 123582, upload-time = \"2024-11-27T22:38:22.693Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 551,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13\", size = 232543, upload-time = \"2024-11-27T22:38:24.367Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281\", size = 241691, upload-time = \"2024-11-27T22:38:26.081Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 552,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272\", size = 251170, upload-time = \"2024-11-27T22:38:27.921Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 553,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140\", size = 236530, upload-time = \"2024-11-27T22:38:29.591Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 554,
"RightIdx": 0,
"Match": -1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 555,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2\", size = 258666, upload-time = \"2024-11-27T22:38:30.639Z\" },"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744\", size = 243954, upload-time = \"2024-11-27T22:38:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 556,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 557,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl\", hash = \"sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec\", size = 98724, upload-time = \"2024-11-27T22:38:32.837Z\" },",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 558,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl\", hash = \"sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69\", size = 109383, upload-time = \"2024-11-27T22:38:34.455Z\" },"
},
{
"LeftIdx": 559,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl\", hash = \"sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc\", size = 14257, upload-time = \"2024-11-27T22:38:35.385Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 0,
"RightIdx": 501,
"Match": 21,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl\", hash = \"sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3\", size = 39814, upload-time = \"2026-03-04T18:55:31.284Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 560,
"RightIdx": 502,
"Match": 0,
"Type": 1
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 561,
"RightIdx": 503,
"Match": 0,
"Type": 1,
"Content": " "
},
{
"LeftIdx": 562,
"RightIdx": 504,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 1,
"Content": " name = \"tomlkit\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 563,
"RightIdx": 505,
"Match": 0
},
{
"LeftIdx": 564,
"RightIdx": 0,
"Match": 67,
"Type": 3,
"Content": "-version = \"0.13.3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 2,
"Content": "+version = \"0.14.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 506,
"Match": 66
},
{
"LeftIdx": 565,
"RightIdx": 507,
"Match": 0,
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 566,
"RightIdx": 0,
"Match": 70,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz\", hash = \"sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1\", size = 185207, upload-time = \"2025-06-05T07:13:44.947Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz\", hash = \"sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064\", size = 187167, upload-time = \"2026-01-13T01:14:53.304Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 508,
"Match": 69,
"Type": 2
},
{
"LeftIdx": 567,
"RightIdx": 509,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl\", hash = \"sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0\", size = 38901, upload-time = \"2025-06-05T07:13:43.546Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 568,
"RightIdx": 0,
"Match": 82
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 569
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 570,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 571,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 572,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"typing-extensions\""
},
{
"LeftIdx": 573,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"4.14.1\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 574,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz\", hash = \"sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36\", size = 107673, upload-time = \"2025-07-04T13:28:34.16Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 575,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 576,
"RightIdx": 0
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl\", hash = \"sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76\", size = 43906, upload-time = \"2025-07-04T13:28:32.743Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 577,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 510,
"Match": 72,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl\", hash = \"sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680\", size = 39310, upload-time = \"2026-01-13T01:14:51.965Z\" },",
"Comments": null
},
{
"LeftIdx": 578,
"RightIdx": 511,
"Match": 0,
"Type": 1,
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 579,
"RightIdx": 512,
"Match": 0,
"Type": 1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 580,
"RightIdx": 513,
"Match": 0,
"Type": 1,
"Content": " [[package]]",
"Comments": null
},
{
"LeftIdx": 581,
"RightIdx": 514,
"Match": 0,
"Type": 1,
"Content": " name = \"urllib3\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "-version = \"2.5.0\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 582,
"RightIdx": 0,
"Match": 88
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0,
"RightIdx": 515,
"Match": 87,
"Type": 2,
"Content": "+version = \"2.6.3\""
},
{
"Type": 1,
"Content": " source = { registry = \"https://pypi.org/simple\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 583,
"RightIdx": 516,
"Match": 0
},
{
"Match": 91,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz\", hash = \"sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760\", size = 393185, upload-time = \"2025-06-18T14:07:41.644Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 584,
"RightIdx": 0
},
{
"RightIdx": 517,
"Match": 90,
"Type": 2,
"Content": "+sdist = { url = \"https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz\", hash = \"sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed\", size = 435556, upload-time = \"2026-01-07T16:24:43.925Z\" }",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 0
},
{
"LeftIdx": 585,
"RightIdx": 518,
"Match": 0,
"Type": 1,
"Content": " wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl\", hash = \"sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc\", size = 129795, upload-time = \"2025-06-18T14:07:40.39Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 586,
"RightIdx": 0,
"Match": 147,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "-]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 587,
"RightIdx": 0
},
{
"Content": "-",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 588,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 589,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-[[package]]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 590,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-name = \"wrapt\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-version = \"1.17.2\"",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 591
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 592,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-source = { registry = \"https://pypi.org/simple\" }",
"Comments": null
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 593,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-sdist = { url = \"https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz\", hash = \"sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3\", size = 55531, upload-time = \"2025-01-14T10:35:45.465Z\" }"
},
{
"LeftIdx": 594,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "-wheels = [",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl\", hash = \"sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58\", size = 53308, upload-time = \"2025-01-14T10:33:33.992Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 595,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/50/ff/149aba8365fdacef52b31a258c4dc1c57c79759c335eff0b3316a2664a64/wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl\", hash = \"sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda\", size = 38488, upload-time = \"2025-01-14T10:33:35.264Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 596,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl\", hash = \"sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438\", size = 38776, upload-time = \"2025-01-14T10:33:38.28Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 597,
"RightIdx": 0
},
{
"LeftIdx": 598,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ca/74/336c918d2915a4943501c77566db41d1bd6e9f4dbc317f356b9a244dfe83/wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a\", size = 83776, upload-time = \"2025-01-14T10:33:40.678Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/99/c0c844a5ccde0fe5761d4305485297f91d67cf2a1a824c5f282e661ec7ff/wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000\", size = 75420, upload-time = \"2025-01-14T10:33:41.868Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 599,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/b4/b0/9fc566b0fe08b282c850063591a756057c3247b2362b9286429ec5bf1721/wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6\", size = 83199, upload-time = \"2025-01-14T10:33:43.598Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 600
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/9d/4b/71996e62d543b0a0bd95dda485219856def3347e3e9380cc0d6cf10cfb2f/wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl\", hash = \"sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b\", size = 82307, upload-time = \"2025-01-14T10:33:48.499Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 601,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/39/35/0282c0d8789c0dc9bcc738911776c762a701f95cfe113fb8f0b40e45c2b9/wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl\", hash = \"sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662\", size = 75025, upload-time = \"2025-01-14T10:33:51.191Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 602,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 603,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4f/6d/90c9fd2c3c6fee181feecb620d95105370198b6b98a0770cba090441a828/wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl\", hash = \"sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72\", size = 81879, upload-time = \"2025-01-14T10:33:52.328Z\" },"
},
{
"LeftIdx": 604,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8f/fa/9fb6e594f2ce03ef03eddbdb5f4f90acb1452221a5351116c7c4708ac865/wrapt-1.17.2-cp311-cp311-win32.whl\", hash = \"sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317\", size = 36419, upload-time = \"2025-01-14T10:33:53.551Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/47/f8/fb1773491a253cbc123c5d5dc15c86041f746ed30416535f2a8df1f4a392/wrapt-1.17.2-cp311-cp311-win_amd64.whl\", hash = \"sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3\", size = 38773, upload-time = \"2025-01-14T10:33:56.323Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 605,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl\", hash = \"sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925\", size = 53799, upload-time = \"2025-01-14T10:33:57.4Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 606,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl\", hash = \"sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392\", size = 38821, upload-time = \"2025-01-14T10:33:59.334Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 607,
"RightIdx": 0,
"Match": -1
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl\", hash = \"sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40\", size = 38919, upload-time = \"2025-01-14T10:34:04.093Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 608,
"RightIdx": 0
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d\", size = 88721, upload-time = \"2025-01-14T10:34:07.163Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 609
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b\", size = 80899, upload-time = \"2025-01-14T10:34:09.82Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 610,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98\", size = 89222, upload-time = \"2025-01-14T10:34:11.258Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 611,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 612,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl\", hash = \"sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82\", size = 86707, upload-time = \"2025-01-14T10:34:12.49Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl\", hash = \"sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae\", size = 79685, upload-time = \"2025-01-14T10:34:15.043Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 613,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl\", hash = \"sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9\", size = 87567, upload-time = \"2025-01-14T10:34:16.563Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 614,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 615,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl\", hash = \"sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9\", size = 36672, upload-time = \"2025-01-14T10:34:17.727Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl\", hash = \"sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991\", size = 38865, upload-time = \"2025-01-14T10:34:19.577Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 616,
"RightIdx": 0
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 617,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl\", hash = \"sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125\", size = 53800, upload-time = \"2025-01-14T10:34:21.571Z\" },",
"Comments": null
},
{
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl\", hash = \"sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998\", size = 38824, upload-time = \"2025-01-14T10:34:22.999Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 618
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl\", hash = \"sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5\", size = 38920, upload-time = \"2025-01-14T10:34:25.386Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 619,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8\", size = 88690, upload-time = \"2025-01-14T10:34:28.058Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 620,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 621,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6\", size = 80861, upload-time = \"2025-01-14T10:34:29.167Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc\", size = 89174, upload-time = \"2025-01-14T10:34:31.702Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 622,
"RightIdx": 0,
"Match": -1
},
{
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 623,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl\", hash = \"sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2\", size = 86721, upload-time = \"2025-01-14T10:34:32.91Z\" },",
"Comments": null
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl\", hash = \"sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b\", size = 79763, upload-time = \"2025-01-14T10:34:34.903Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 624,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl\", hash = \"sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504\", size = 87585, upload-time = \"2025-01-14T10:34:36.13Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 625,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 626,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl\", hash = \"sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a\", size = 36676, upload-time = \"2025-01-14T10:34:37.962Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 627,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl\", hash = \"sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845\", size = 38871, upload-time = \"2025-01-14T10:34:39.13Z\" },"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl\", hash = \"sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192\", size = 56312, upload-time = \"2025-01-14T10:34:40.604Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 628,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl\", hash = \"sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b\", size = 40062, upload-time = \"2025-01-14T10:34:45.011Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 629,
"RightIdx": 0
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl\", hash = \"sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0\", size = 40155, upload-time = \"2025-01-14T10:34:47.25Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 630,
"RightIdx": 0
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl\", hash = \"sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306\", size = 113471, upload-time = \"2025-01-14T10:34:50.934Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 631,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl\", hash = \"sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb\", size = 101208, upload-time = \"2025-01-14T10:34:52.297Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 632,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl\", hash = \"sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681\", size = 109339, upload-time = \"2025-01-14T10:34:53.489Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 633,
"RightIdx": 0,
"Match": -1
},
{
"Content": "- { url = \"https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl\", hash = \"sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6\", size = 110232, upload-time = \"2025-01-14T10:34:55.327Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 634,
"RightIdx": 0,
"Match": -1,
"Type": 3
},
{
"LeftIdx": 635,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl\", hash = \"sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6\", size = 100476, upload-time = \"2025-01-14T10:34:58.055Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl\", hash = \"sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f\", size = 106377, upload-time = \"2025-01-14T10:34:59.3Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 636,
"RightIdx": 0
},
{
"LeftIdx": 637,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl\", hash = \"sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555\", size = 37986, upload-time = \"2025-01-14T10:35:00.498Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"LeftIdx": 638,
"RightIdx": 0,
"Match": -1,
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl\", hash = \"sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c\", size = 40750, upload-time = \"2025-01-14T10:35:03.378Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Type": 3,
"Content": "- { url = \"https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl\", hash = \"sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8\", size = 23594, upload-time = \"2025-01-14T10:35:44.018Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 639,
"RightIdx": 0,
"Match": -1
},
{
"LeftIdx": 0,
"RightIdx": 519,
"Match": 93,
"Type": 2,
"Content": "+ { url = \"https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl\", hash = \"sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4\", size = 131584, upload-time = \"2026-01-07T16:24:42.685Z\" },",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]"
},
{
"Content": " ]",
"Comments": null,
"SectionInfo": "[*gitdiff.DiffLineSectionInfo]",
"LeftIdx": 640,
"RightIdx": 520,
"Match": 0,
"Type": 1
}
]
},
{
"Lines": [
{
"Content": " ",
"Comments": null,
"SectionInfo": {
"LastLeftIdx": 640,
"LastRightIdx": 520,
"LeftIdx": 641,
"RightIdx": 521,
"LeftHunkSize": 0,
"RightHunkSize": 0,
"HiddenCommentIDs": null,
"Path": "uv.lock"
},
"LeftIdx": 0,
"RightIdx": 0,
"Match": 0,
"Type": 4
}
],
"FileName": "uv.lock"
}
],
"IsIncompleteLineTooLong": false,
"Name": "uv.lock",
"IsBin": false,
"IsIncomplete": false,
"IsViewed": false,
"Type": 2,
"IsLFSFile": false,
"IsVendored": false,
"IsProtected": false,
"HasChangedSinceLastReview": false
}
],
"IsIncomplete": false
},
"Commits": [
{
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"CreatedUnix": 1772827042,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/918/jobs/0",
"Context": "Conventional Commit / Validate PR Title (pull_request)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1772827042,
"ID": 90801,
"Index": 3,
"RepoID": 25,
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"Description": "Successful in 4s",
"ContextHash": "d7cc028fcbc1b9a3b7e7b420569d59c23f362ed4"
},
{
"Repo": "[*repo.Repository]",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1772827063,
"ID": 90804,
"RepoID": 25,
"State": "success",
"Description": "Successful in 31s",
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Context": "CI / ci (pull_request)",
"CreatorID": -2,
"UpdatedUnix": 1772827063,
"Index": 4
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"Name": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Description": "",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"NumTeams": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"Language": "en-US",
"IsActive": true,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"LoginType": 6,
"LoginSource": 2,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Visibility": 1,
"Theme": "tangerine-dream"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Type": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Location": "",
"ProhibitLogin": false,
"Visibility": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"IsActive": true,
"IsAdmin": false,
"IsRestricted": false,
"LowerName": "renovate-bot",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumTeams": 0,
"FullName": "renovate[bot]",
"NumFollowers": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"Theme": "gitea-auto",
"ID": 5,
"KeepEmailPrivate": true
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
],
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"ID": 3,
"Email": "luke@tainton.uk",
"Location": "",
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"FullName": "Luke Tainton",
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"LoginSource": 2,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"IsActive": true,
"IsAdmin": true,
"PasswdHashAlgo": "",
"Type": 0,
"Salt": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Passwd": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumStars": 1,
"NumRepos": 3,
"Visibility": 1,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1713634307,
"RepoAdminChangeTeamAccess": false
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumStars": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"Language": "en-US",
"IsAdmin": false,
"NumTeams": 0,
"KeepEmailPrivate": true,
"LoginName": "",
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"MustChangePassword": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumMembers": 0,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Description": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"UseCustomAvatar": true
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
207,
244,
90,
161,
133,
250,
223,
134,
6,
6,
110,
7,
71,
132,
82,
240,
9,
130,
62,
99
]
}
},
"ID": [
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/build-push-action action to v7 (#420)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/build-push-action](https://github.com/docker/build-push-action) | action | major | `v6` → `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/build-push-action (docker/build-push-action)</summary>\n\n### [`v7`](https://github.com/docker/build-push-action/compare/v6...v7)\n\n[Compare Source](https://github.com/docker/build-push-action/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/420\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LowerName": "luke",
"Passwd": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumStars": 1,
"Visibility": 1,
"Salt": "",
"IsAdmin": true,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"Theme": "tangerine-dream",
"Type": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginType": 6,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"ID": 3,
"KeepEmailPrivate": false,
"Description": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"IsActive": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"Description": "",
"IsRestricted": false,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"MaxRepoCreation": -1,
"NumStars": 0,
"LoginName": "",
"Language": "en-US",
"IsAdmin": false,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"NumTeams": 0,
"Visibility": 0,
"DiffViewStyle": "",
"ID": 5
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <26.3.1,>=26.3.0 (#421)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<26.1.1,>=26.1.0` → `<26.3.1,>=26.3.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.3.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2630)\n\n[Compare Source](https://github.com/psf/black/compare/26.1.0...26.3.0)\n\n##### Stable style\n\n- Don't double-decode input, causing non-UTF-8 files to be corrupted ([#​4964](https://github.com/psf/black/issues/4964))\n- Fix crash on standalone comment in lambda default arguments ([#​4993](https://github.com/psf/black/issues/4993))\n- Preserve parentheses when `# type: ignore` comments would be merged with other\n comments on the same line, preventing AST equivalence failures ([#​4888](https://github.com/psf/black/issues/4888))\n\n##### Preview style\n\n- Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had\n a trailing comma ([#​4884](https://github.com/psf/black/issues/4884))\n- Fix `string_processing` crashing on unassigned long string literals with trailing\n commas (one-item tuples) ([#​4929](https://github.com/psf/black/issues/4929))\n- Simplify implementation of the power operator \"hugging\" logic ([#​4918](https://github.com/psf/black/issues/4918))\n\n##### Packaging\n\n- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\n frozen environments ([#​4930](https://github.com/psf/black/issues/4930))\n\n##### Performance\n\n- Introduce winloop for windows as an alternative to uvloop ([#​4996](https://github.com/psf/black/issues/4996))\n- Remove deprecated function `uvloop.install()` in favor of `uvloop.new_event_loop()`\n ([#​4996](https://github.com/psf/black/issues/4996))\n- Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to simplify loop\n installation and creation of either a uvloop/winloop evenloop or default eventloop\n ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Output\n\n- Emit a clear warning when the target Python version is newer than the running Python\n version, since AST safety checks cannot parse newer syntax. Also replace the\n misleading \"INTERNAL ERROR\" message with an actionable error explaining the version\n mismatch ([#​4983](https://github.com/psf/black/issues/4983))\n\n##### *Blackd*\n\n- Introduce winloop to be used when windows in use which enables blackd to run faster on\n windows when winloop is installed. ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Integrations\n\n- Remove unused gallery script ([#​5030](https://github.com/psf/black/issues/5030))\n- Harden parsing of `black` requirements in the GitHub Action when `use_pyproject` is\n enabled so that only version specifiers are accepted and direct references such as\n `black @​ https://...` are rejected. Users should upgrade to the latest version of the\n action as soon as possible. This update is received automatically when using\n `psf/black@stable`, and is independent of the version of Black installed by the\n action. ([#​5031](https://github.com/psf/black/issues/5031))\n\n##### Documentation\n\n- Expand preview style documentation with detailed examples for `wrap_comprehension_in`,\n `simplify_power_operator_hugging`, and `wrap_long_dict_values_in_parens` features\n ([#​4987](https://github.com/psf/black/issues/4987))\n- Add detailed documentation for formatting Jupyter Notebooks ([#​5009](https://github.com/psf/black/issues/5009))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OC4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/421\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
]
],
"Tree": {
"TreeCommon": {
"ID": [
203,
115,
71,
56,
137,
176,
180,
148,
171,
200,
154,
132,
74,
30,
231,
35,
104,
209,
110,
204
],
"ResolvedID": null
}
},
"ID": [
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"UserCommit": {
"User": {
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"NumTeams": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"MustChangePassword": false,
"LoginType": 0,
"Location": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
169,
145,
163,
141,
48,
242,
186,
111,
51,
48,
46,
4,
237,
16,
28,
1,
167,
255,
54,
4
]
}
},
"ID": [
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency tabulate to v0.10.0 (#417)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [tabulate](https://github.com/astanin/python-tabulate) | `==0.9.0` → `==0.10.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astanin/python-tabulate (tabulate)</summary>\n\n### [`v0.10.0`](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n[Compare Source](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41My4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/417\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
]
]
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsRestricted": false,
"MustChangePassword": false,
"LowerName": "luke",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Type": 0,
"PasswdHashAlgo": "",
"Location": "",
"Salt": "",
"Description": "",
"NumRepos": 3,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"IsActive": true,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumStars": 1,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 2,
"ID": 3,
"Name": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"AvatarEmail": "luke@tainton.uk",
"LoginType": 6,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
}
}
},
{
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Passwd": "",
"MustChangePassword": false,
"Type": 0,
"LastLoginUnix": 1776964991,
"ID": 3,
"LowerName": "luke",
"Salt": "",
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"AllowImportLocal": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"LoginType": 6,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumMembers": 0,
"IsRestricted": false,
"Name": "luke",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Description": "",
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"NumFollowers": 0,
"Visibility": 0,
"Type": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"ID": 5,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"NumFollowing": 0,
"NumStars": 0,
"IsRestricted": false,
"AllowImportLocal": false,
"NumTeams": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
]
],
"Tree": {
"TreeCommon": {
"ID": [
74,
59,
158,
167,
90,
222,
211,
85,
61,
150,
81,
122,
16,
127,
222,
102,
63,
2,
65,
207
],
"ResolvedID": null
}
},
"ID": [
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#415)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/415\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": "[*git.CommitStatus]"
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Visibility": 1,
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Name": "luke",
"LoginSource": 2,
"Location": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"Type": 0,
"ID": 3,
"Language": "en-US",
"IsRestricted": false,
"DiffViewStyle": "unified",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AllowGitHook": false,
"NumFollowing": 1,
"NumStars": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false,
"NumFollowing": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"Name": "renovate-bot",
"NumMembers": 0,
"Visibility": 0,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LastRepoVisibility": false,
"IsActive": true,
"ID": 5,
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsRestricted": false,
"LoginType": 0,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"NumStars": 0,
"Theme": "gitea-auto",
"MustChangePassword": false,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
135,
87,
222,
200,
9,
213,
147,
0,
220,
23,
205,
184,
1,
126,
201,
187,
147,
173,
255,
0
],
"ResolvedID": null
}
},
"ID": [
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#416)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/416\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"Type": 0,
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowing": 1,
"NumTeams": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"DiffViewStyle": "unified",
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumMembers": 0,
"LoginType": 6,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"NumStars": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Passwd": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowImportLocal": false,
"ProhibitLogin": false,
"ID": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk"
},
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"CommitMessage": "feat(deps): lock file maintenance (#414)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/414\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
]
],
"Tree": {
"TreeCommon": {
"ID": [
213,
17,
80,
137,
164,
216,
216,
22,
208,
160,
124,
137,
35,
245,
52,
222,
11,
235,
12,
227
],
"ResolvedID": null
}
},
"ID": [
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"User": {
"AllowGitHook": false,
"NumFollowers": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"LoginType": 0,
"LoginSource": 0,
"Description": "",
"IsActive": true,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Location": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"LowerName": "renovate-bot",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"NumStars": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"IsAdmin": false
}
}
},
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"CreatorID": 0
},
"Statuses": [
{
"UpdatedUnix": 1772355680,
"Index": 6,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1772355680,
"ID": 89643,
"State": "success",
"Description": "Successful in 28s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1772355728,
"UpdatedUnix": 1772355728,
"ID": 89659,
"Index": 7,
"RepoID": 25,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/1",
"Description": "Successful in 1s"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/4",
"Description": "Successful in 1m42s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 8,
"State": "success",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1772355834,
"UpdatedUnix": 1772355834,
"ID": 89664
},
{
"State": "success",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"Description": "Successful in 4s",
"Creator": "[*user.User]",
"UpdatedUnix": 1772355837,
"Index": 9,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1772355837,
"ID": 89665
},
{
"ID": 89667,
"Index": 10,
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"Description": "Failing after 17s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatorID": -2,
"CreatedUnix": 1772355891,
"UpdatedUnix": 1772355891,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]"
}
]
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"Description": "",
"ContextHash": "",
"Repo": "[*repo.Repository]",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"CreatorID": -2,
"CreatedUnix": 1771750839,
"UpdatedUnix": 1771750839,
"ID": 88359,
"Index": 18,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/0",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1771750881,
"ID": 88381,
"Index": 19,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1771750881,
"RepoID": 25
},
{
"RepoID": 25,
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Creator": "[*user.User]",
"CreatedUnix": 1771750936,
"UpdatedUnix": 1771750936,
"ID": 88391,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/2",
"Description": "Successful in 3s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"Index": 20
},
{
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/4",
"Description": "Failing after 58s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771750943,
"UpdatedUnix": 1771750943,
"ID": 88392,
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"Description": "Failing after 14s",
"Context": "Release / Build Wheel File (push)",
"CreatedUnix": 1771751052,
"ID": 88398,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1771751052,
"Index": 22
}
],
"SignCommit": {
"UserCommit": {
"User": {
"LoginSource": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"Email": "renovate-bot@git.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"IsRestricted": false,
"ID": 5,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Location": "",
"IsActive": true,
"ProhibitLogin": false,
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Type": 0,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Description": "",
"AllowCreateOrganization": false,
"NumFollowing": 0
},
"Commit": {
"ID": [
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#413)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/413\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
100,
137,
198,
88,
236,
219,
219,
213,
77,
37,
186,
107,
61,
134,
50,
125,
60,
240,
114,
1
]
}
}
}
},
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Name": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"IsActive": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"IsRestricted": false,
"IsAdmin": true,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"Language": "en-US",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"ID": 3,
"LowerName": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginSource": 2,
"Description": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"Salt": "",
"CreatedUnix": 1713634307
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
}
},
{
"Statuses": [
{
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/0",
"Description": "Successful in 20s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatedUnix": 1770541283,
"UpdatedUnix": 1770541283,
"ID": 85308
},
{
"State": "success",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/1",
"Description": "Successful in 7s",
"Creator": "[*user.User]",
"CreatedUnix": 1770541351,
"ID": 85334,
"Index": 17,
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1770541351,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1770541435,
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Description": "Failing after 1m30s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1770541435,
"ID": 85339,
"Index": 18,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1770541554,
"ID": 85343,
"Index": 19,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/2",
"Description": "Successful in 7s",
"CreatorID": -2,
"UpdatedUnix": 1770541554,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3",
"Description": "Failing after 23s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatorID": -2,
"CreatedUnix": 1770541652,
"ID": 85347,
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1770541652,
"Index": 20
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumRepos": 3,
"NumMembers": 0,
"Name": "luke",
"LoginSource": 2,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"Passwd": "",
"Salt": "",
"IsRestricted": false,
"Visibility": 1,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"PasswdHashAlgo": "",
"Description": "",
"IsActive": true,
"NumFollowing": 1,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"AllowGitHook": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"KeepEmailPrivate": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsAdmin": true,
"ProhibitLogin": false
},
"TrustStatus": ""
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"IsRestricted": false,
"NumStars": 0,
"NumRepos": 0,
"CreatedUnix": 1735676388,
"Type": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Description": "",
"AllowCreateOrganization": false,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LoginSource": 0,
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"IsActive": true,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#412)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/412\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
165,
210,
85,
112,
247,
140,
213,
205,
198,
252,
137,
245,
16,
169,
245,
130,
57,
139,
72
],
"ResolvedID": null
}
},
"ID": [
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
]
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"RepoID": 25,
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3",
"Description": "",
"ContextHash": "",
"State": "failure",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"ID": 79838,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1769331690,
"UpdatedUnix": 1769331690,
"Index": 5,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Description": "Successful in 13s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331723,
"UpdatedUnix": 1769331723,
"ID": 79860,
"Index": 7,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1769331768,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1769331768,
"ID": 79870,
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/2",
"Context": "Release / Get Release ID (push)"
},
{
"SHA": "a8454098c1c988e246e64541399741598392860c",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1769331812,
"Index": 9,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/4",
"Description": "Successful in 1m24s",
"CreatorID": -2,
"UpdatedUnix": 1769331812,
"ID": 79871,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Index": 10,
"RepoID": 25,
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1769331942,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3",
"Description": "Failing after 13s",
"CreatorID": -2,
"UpdatedUnix": 1769331942,
"ID": 79878
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumTeams": 0,
"ID": 5,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Type": 0,
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumStars": 0,
"Visibility": 0,
"LoginName": "",
"Location": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"NumRepos": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Name": "renovate-bot",
"Description": "",
"UseCustomAvatar": true,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowing": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
4,
24,
38,
128,
10,
151,
131,
87,
181,
79,
200,
224,
59,
231,
243,
92,
61,
198,
213
],
"ResolvedID": null
}
},
"ID": [
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#411)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"LoginType": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"ID": 5,
"Description": "",
"IsRestricted": false,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Type": 0,
"LastLoginUnix": 1768857135
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"UserCommit": {
"User": {
"Name": "luke",
"FullName": "Luke Tainton",
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"LastRepoVisibility": false,
"LoginName": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"Visibility": 1,
"Description": "",
"UpdatedUnix": 1776964991,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Type": 0,
"AllowCreateOrganization": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"ID": 3,
"Salt": "",
"NumTeams": 0,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream"
},
"Commit": {
"ID": [
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
],
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove Snyk security workflow and update renovate configuration (#410)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/410\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
160,
109,
243,
213,
111,
228,
8,
253,
75,
112,
108,
61,
111,
204,
142,
219,
39,
111,
104,
238
],
"ResolvedID": null
}
}
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Type": 0,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Salt": "",
"Description": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumFollowing": 1,
"NumRepos": 3,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"NumTeams": 0,
"Visibility": 1,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"Name": "luke",
"KeepEmailPrivate": false,
"LoginSource": 2,
"Location": "",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false
},
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"Status": {
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11"
},
"Statuses": [
{
"Index": 6,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11",
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"RepoID": 25,
"Description": "Successful in 31s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768953783,
"UpdatedUnix": 1768953783,
"ID": 77974
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"Passwd": "",
"Language": "en-US",
"UseCustomAvatar": true,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Description": "",
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"LoginSource": 2,
"LowerName": "luke",
"Name": "luke",
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginType": 6,
"CreatedUnix": 1713634307,
"LoginName": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"NumRepos": 3,
"LastLoginUnix": 1776964991,
"Type": 0,
"ID": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
]
],
"Tree": {
"TreeCommon": {
"ID": [
159,
229,
97,
136,
224,
143,
219,
67,
58,
190,
119,
157,
71,
56,
63,
33,
206,
43,
124,
247
],
"ResolvedID": null
}
},
"ID": [
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#409)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/409\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"LoginType": 0,
"LoginName": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"NumFollowing": 0,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Visibility": 0,
"IsAdmin": false,
"AllowImportLocal": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"ID": 5,
"Name": "renovate-bot",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"NumFollowers": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"ProhibitLogin": false,
"Theme": "gitea-auto"
}
}
}
},
{
"Status": {
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1768853997,
"UpdatedUnix": 1768853997,
"ID": 77521,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8",
"Description": "Successful in 30s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"Type": 0,
"Location": "",
"Salt": "",
"NumFollowers": 0,
"Visibility": 1,
"IsAdmin": true,
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"IsRestricted": false,
"ID": 3,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumTeams": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Description": "",
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"NumStars": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Passwd": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk"
},
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"Parents": [
[
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
]
],
"Tree": {
"TreeCommon": {
"ID": [
69,
213,
163,
134,
88,
68,
122,
118,
114,
72,
52,
182,
59,
163,
144,
66,
223,
178,
14,
250
],
"ResolvedID": null
}
},
"ID": [
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]"
},
"User": {
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Description": "",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsActive": true,
"LoginType": 6,
"Type": 0,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"LowerName": "luke",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumStars": 1,
"Visibility": 1,
"Passwd": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"KeepEmailPrivate": false
}
}
}
},
{
"Statuses": [
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"CreatorID": -2,
"Description": "Successful in 2m0s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768780956,
"UpdatedUnix": 1768780956,
"ID": 77311,
"Index": 4
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"ID": 3,
"Name": "luke",
"Salt": "",
"IsAdmin": true,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"Visibility": 1,
"Email": "luke@tainton.uk",
"Passwd": "",
"Type": 0,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumTeams": 0,
"Description": "",
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"NumMembers": 0,
"Theme": "tangerine-dream",
"LoginType": 6,
"LoginSource": 2,
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumStars": 1
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginSource": 0,
"IsAdmin": false,
"AllowGitHook": false,
"NumStars": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Language": "en-US",
"AllowCreateOrganization": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"AllowImportLocal": false,
"IsActive": true,
"LoginName": "",
"Type": 0,
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 0,
"MaxRepoCreation": -1,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
]
],
"Tree": {
"TreeCommon": {
"ID": [
20,
218,
209,
10,
9,
227,
144,
104,
12,
105,
69,
239,
73,
157,
20,
120,
122,
140,
253,
122
],
"ResolvedID": null
}
},
"ID": [
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#408)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
}
},
{
"Statuses": [
{
"Description": "Successful in 30s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1768694592,
"ID": 77043,
"RepoID": 25,
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Creator": "[*user.User]",
"UpdatedUnix": 1768694592,
"Index": 12,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/868/jobs/0"
},
{
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/0",
"Description": "Successful in 16s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768726872,
"UpdatedUnix": 1768726872,
"ID": 77139,
"Index": 14,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee"
},
{
"ID": 77172,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Index": 19,
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/1",
"Description": "Successful in 1s",
"CreatorID": -2,
"CreatedUnix": 1768726939,
"UpdatedUnix": 1768726939
},
{
"ID": 77179,
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1768727013,
"UpdatedUnix": 1768727013,
"Index": 20,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m10s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]"
},
{
"CreatorID": -2,
"ID": 77181,
"RepoID": 25,
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768727044,
"UpdatedUnix": 1768727044,
"Index": 21,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/2",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"Description": "Failing after 13s",
"Creator": "[*user.User]",
"CreatedUnix": 1768727237,
"UpdatedUnix": 1768727237,
"ID": 77187,
"Index": 22,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Location": "",
"AllowGitHook": false,
"NumFollowing": 1,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"Type": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"ID": 3,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Passwd": "",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Salt": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowCreateOrganization": false
}
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"KeepActivityPrivate": false,
"ID": 5,
"LoginName": "",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Description": "",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumStars": 0,
"NumTeams": 0,
"FullName": "renovate[bot]",
"LoginType": 0,
"IsAdmin": false,
"IsRestricted": false,
"Visibility": 0
},
"Commit": {
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#407)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/407\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
]
],
"Tree": {
"TreeCommon": {
"ID": [
36,
83,
75,
86,
156,
156,
57,
123,
49,
123,
143,
64,
145,
5,
68,
146,
66,
123,
213,
44
],
"ResolvedID": null
}
},
"ID": [
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
]
}
}
},
"Status": {
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"Description": "",
"Creator": "[*user.User]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
}
},
{
"Statuses": [
{
"Description": "Successful in 46s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1767611980,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1767611980,
"ID": 74896,
"State": "success",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e",
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0"
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
]
],
"Tree": {
"TreeCommon": {
"ID": [
99,
145,
160,
10,
240,
4,
130,
18,
234,
156,
176,
119,
55,
229,
26,
8,
145,
82,
226,
220
],
"ResolvedID": null
}
},
"ID": [
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#406)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/406\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"LoginName": "",
"IsRestricted": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Location": "",
"IsAdmin": false,
"NumTeams": 0,
"Visibility": 0,
"Type": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumStars": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumMembers": 0,
"KeepEmailPrivate": true,
"LoginType": 0
}
},
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"Type": 0,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"DiffViewStyle": "unified",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Salt": "",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumRepos": 3,
"Visibility": 1,
"LowerName": "luke",
"LoginType": 6,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"MustChangePassword": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
}
},
"Status": {
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0",
"ContextHash": "",
"CreatedUnix": 0
}
},
{
"Status": {
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatorID": -2,
"CreatedUnix": 1767517260,
"UpdatedUnix": 1767517260,
"ID": 74560,
"Index": 18,
"State": "success",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/0",
"Description": "Successful in 10s",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"RepoID": 25,
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1767517342,
"UpdatedUnix": 1767517342,
"ID": 74575,
"Index": 21
},
{
"CreatedUnix": 1767517467,
"Index": 22,
"State": "success",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/4",
"Description": "Successful in 2m0s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1767517467,
"ID": 74583,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]"
},
{
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1767517611,
"ID": 74587,
"RepoID": 25,
"State": "failure",
"Description": "Failing after 45s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1767517611,
"Index": 23,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8"
},
{
"ID": 74588,
"Index": 24,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25,
"State": "skipped",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "Has been skipped",
"CreatedUnix": 1767517611,
"UpdatedUnix": 1767517611
},
{
"CreatorID": -2,
"Index": 26,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1767571431,
"UpdatedUnix": 1767571431,
"ID": 74803,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0",
"Description": "Successful in 43s",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"Theme": "tangerine-dream",
"ID": 3,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"LowerName": "luke",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Passwd": "",
"LoginType": 6,
"Type": 0,
"IsAdmin": true,
"AllowGitHook": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"IsActive": true,
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk"
}
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"FullName": "renovate[bot]",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Type": 0,
"UseCustomAvatar": true,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Description": "",
"UpdatedUnix": 1768857135,
"NumTeams": 0,
"Visibility": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumMembers": 0,
"Name": "renovate-bot",
"LoginName": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
113,
25,
112,
167,
230,
168,
226,
148,
28,
114,
101,
231,
195,
92,
119,
85,
175,
159,
60,
70
]
}
},
"ID": [
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#405)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni4xMSIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/405\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0",
"Description": "",
"ContextHash": "",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"CreatedUnix": 1766912445,
"ID": 73534,
"Index": 40,
"State": "success",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1766912445,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]"
},
{
"Index": 43,
"RepoID": 25,
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1766912492,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/1",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1766912492,
"ID": 73549
},
{
"ID": 73557,
"Index": 44,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/4",
"Description": "Failing after 58s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Creator": "[*user.User]",
"CreatedUnix": 1766912552,
"UpdatedUnix": 1766912552
},
{
"CreatorID": -2,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1766912603,
"UpdatedUnix": 1766912603,
"ID": 73559,
"Index": 45,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Description": "Successful in 1s",
"Creator": "[*user.User]"
},
{
"CreatedUnix": 1766912675,
"UpdatedUnix": 1766912675,
"Index": 46,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"ID": 73562,
"RepoID": 25,
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/3",
"Description": "Failing after 9s",
"CreatorID": -2
},
{
"UpdatedUnix": 1766966547,
"ID": 73604,
"Index": 48,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0",
"Description": "Successful in 49s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"RepoID": 25,
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1766966547
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"NumStars": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"Type": 0,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"ID": 3,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"Location": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"IsAdmin": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumTeams": 0,
"KeepActivityPrivate": false,
"LoginSource": 2,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Passwd": "",
"LoginType": 6,
"Salt": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"IsActive": true,
"LowerName": "renovate-bot",
"LoginType": 0,
"LoginName": "",
"Location": "",
"MaxRepoCreation": -1,
"Visibility": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Type": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"NumFollowing": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Website": "https://renovatebot.com",
"Language": "en-US",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"IsAdmin": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
98,
1,
147,
211,
224,
214,
129,
0,
246,
13,
59,
205,
197,
57,
102,
100,
69,
171,
241,
109
],
"ResolvedID": null
}
},
"ID": [
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#404)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/404\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
]
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginSource": 2,
"Type": 0,
"Location": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"Visibility": 1,
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"IsRestricted": false,
"MustChangePassword": false,
"LoginType": 6,
"MaxRepoCreation": -1,
"ID": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"Salt": "",
"Description": "",
"AllowImportLocal": false,
"NumStars": 1,
"FullName": "Luke Tainton",
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"NumFollowing": 1
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Language": "en-US",
"NumFollowing": 0,
"NumMembers": 0,
"LoginType": 0,
"LoginName": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UseCustomAvatar": true,
"Visibility": 0,
"Theme": "gitea-auto",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginSource": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"ID": 5,
"Website": "https://renovatebot.com",
"IsRestricted": false,
"NumStars": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"LowerName": "renovate-bot",
"Description": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"ProhibitLogin": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#403)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/403\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
163,
87,
58,
25,
201,
167,
129,
87,
106,
169,
213,
225,
157,
254,
76,
255,
137,
27,
119
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0",
"Description": "",
"Context": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 12,
"RepoID": 25,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"CreatorID": -2,
"CreatedUnix": 1765702862,
"UpdatedUnix": 1765702862,
"ID": 71629
},
{
"Index": 15,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 71646,
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/1",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765702919,
"UpdatedUnix": 1765702919
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 16,
"RepoID": 25,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 1m14s",
"CreatedUnix": 1765702997,
"UpdatedUnix": 1765702997,
"ID": 71655,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/4"
},
{
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/2",
"Description": "Successful in 1s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765703082,
"ID": 71658,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"UpdatedUnix": 1765703082,
"Index": 17,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5"
},
{
"ID": 71662,
"Index": 18,
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"UpdatedUnix": 1765703202,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 9s",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1765703202
},
{
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 71797,
"Index": 20,
"Repo": "[*repo.Repository]",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 32s",
"Creator": "[*user.User]",
"CreatedUnix": 1765756995,
"UpdatedUnix": 1765756995,
"RepoID": 25
}
]
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"Context": ""
},
"Statuses": [
{
"Description": "Successful in 1m49s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"ID": 70965,
"Index": 8,
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f",
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1765411368,
"UpdatedUnix": 1765411368,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Description": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"ID": 3,
"LowerName": "luke",
"Name": "luke",
"Salt": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"MustChangePassword": false,
"Type": 0,
"CreatedUnix": 1713634307,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"Visibility": 1,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"DiffViewStyle": "unified",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"AllowImportLocal": false,
"Passwd": "",
"Language": "en-US",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"NumTeams": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"TrustStatus": "",
"Warning": false
},
"UserCommit": {
"User": {
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"IsRestricted": false,
"NumStars": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginName": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsActive": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Location": "",
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false
},
"Commit": {
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#402)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/402\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
34,
246,
0,
51,
146,
25,
100,
253,
53,
248,
137,
179,
121,
145,
38,
230,
64,
94,
83,
85
]
}
},
"ID": [
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"ContextHash": "",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "success"
},
"Statuses": [
{
"Index": 2,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765179951,
"UpdatedUnix": 1765179951,
"ID": 70413,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"Description": "Successful in 29s",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"CommittingUser": {
"Passwd": "",
"Location": "",
"IsActive": true,
"IsAdmin": true,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Salt": "",
"LastRepoVisibility": false,
"NumStars": 1,
"NumMembers": 0,
"Type": 0,
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LoginType": 6,
"Description": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"Name": "luke",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"ID": 3,
"KeepEmailPrivate": false,
"Language": "en-US",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumRepos": 3,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"IsAdmin": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Visibility": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"Website": "https://renovatebot.com",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Type": 0,
"Location": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
56,
81,
31,
170,
203,
144,
118,
178,
47,
101,
58,
103,
22,
231,
218,
99,
180,
120,
44,
85
],
"ResolvedID": null
}
},
"ID": [
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#401)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/401\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
]
]
}
}
}
},
{
"Status": {
"State": "success",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"SHA": "26dba20357fa8fa743292be37317312e1818568f",
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"Description": "",
"ContextHash": "",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"CreatedUnix": 1765152149,
"UpdatedUnix": 1765152149,
"ID": 70364,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "26dba20357fa8fa743292be37317312e1818568f",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 4,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"Description": "Successful in 1m38s",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 3,
"Type": 0,
"MaxRepoCreation": -1,
"NumRepos": 3,
"Passwd": "",
"Location": "",
"AllowCreateOrganization": false,
"Name": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Salt": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LoginType": 6,
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Visibility": 1,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"NumStars": 1
},
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"ID": 5,
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"NumStars": 0,
"Visibility": 0,
"LoginType": 0,
"LoginName": "",
"Type": 0,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"LoginSource": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"ProhibitLogin": false,
"NumRepos": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumTeams": 0,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"UpdatedUnix": 1768857135,
"IsActive": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
72,
85,
10,
212,
246,
38,
71,
70,
244,
238,
16,
246,
221,
211,
108,
244,
10,
123,
241,
78
],
"ResolvedID": null
}
},
"ID": [
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#399)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.1.0` -> `<4.1.0,>=4.0.4` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.4`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.4)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.4)\n\n## What's new in Pylint 4.0.4?\n\nRelease date: 2025-11-30\n\n## False Positives Fixed\n\n- Fixed false positive for `invalid-name` where module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.\n\n Closes [#​10719](https://github.com/pylint-dev/pylint/issues/10719)\n\n- Fix a false positive for `invalid-name` on an UPPER\\_CASED name inside an `if` branch that assigns an object.\n\n Closes [#​10745](https://github.com/pylint-dev/pylint/issues/10745)\n\n### [`v4.0.3`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.3)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3)\n\n## What's new in Pylint 4.0.3?\n\nRelease date: 2025-11-13\n\n## False Positives Fixed\n\n- Add Enum dunder methods `_generate_next_value_`, `_missing_`, `_numeric_repr_`, `_add_alias_`, and `_add_value_alias_` to the list passed to `--good-dunder-names`.\n\n Closes [#​10435](https://github.com/pylint-dev/pylint/issues/10435)\n\n- Fixed false positive for `invalid-name` with `typing.Annotated`.\n\n Closes [#​10696](https://github.com/pylint-dev/pylint/issues/10696)\n\n- Fix false positive for `f-string-without-interpolation` with template strings\n when using format spec.\n\n Closes [#​10702](https://github.com/pylint-dev/pylint/issues/10702)\n\n- Fix a false positive when an UPPER\\_CASED class attribute was raising an\n `invalid-name` when typed with `Final`.\n\n Closes [#​10711](https://github.com/pylint-dev/pylint/issues/10711)\n\n- Fix a false positive for `unbalanced-tuple-unpacking` when a tuple is assigned to a function call and the structure of the function's return value is ambiguous.\n\n Closes [#​10721](https://github.com/pylint-dev/pylint/issues/10721)\n\n## Other Bug Fixes\n\n- Make 'ignore' option work as expected again.\n\n Closes [#​10669](https://github.com/pylint-dev/pylint/issues/10669)\n\n- Fix crash for `consider-using-assignment-expr` when a variable annotation without assignment\n is used as the `if` test expression.\n\n Closes [#​10707](https://github.com/pylint-dev/pylint/issues/10707)\n\n- Fix crash for `prefer-typing-namedtuple` and `consider-math-not-float` when\n a `slice` object is called.\n\n Closes [#​10708](https://github.com/pylint-dev/pylint/issues/10708)\n\n### [`v4.0.2`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.2)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.2)\n\n## False Positives Fixed\n\n- Fix false positive for `invalid-name` on a partially uninferable module-level constant.\n\n Closes [#​10652](https://github.com/pylint-dev/pylint/issues/10652)\n\n- Fix a false positive for `invalid-name` on exclusive module-level assignments\n composed of three or more branches. We won't raise `disallowed-name` on module-level names that can't be inferred\n until a further refactor to remove this false negative is done.\n\n Closes [#​10664](https://github.com/pylint-dev/pylint/issues/10664)\n\n- Fix false positive for `invalid-name` for `TypedDict` instances.\n\n Closes [#​10672](https://github.com/pylint-dev/pylint/issues/10672)\n\n### [`v4.0.1`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.1)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.0...v4.0.1)\n\n## What's new in Pylint 4.0.1?\n\nRelease date: 2025-10-14\n\n## False Positives Fixed\n\n- Exclude `__all__` and `__future__.annotations` from `unused-variable`.\n\n Closes [#​10019](https://github.com/pylint-dev/pylint/issues/10019)\n\n- Fix false-positive for `bare-name-capture-pattern` if a case guard is used.\n\n Closes [#​10647](https://github.com/pylint-dev/pylint/issues/10647)\n\n- Check enums created with the `Enum()` functional syntax to pass against the\n `--class-rgx` for the `invalid-name` check, like other enums.\n\n Closes [#​10660](https://github.com/pylint-dev/pylint/issues/10660)\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n # inference engine understands result.errors cannot be None\n # pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/399\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"Description": "",
"ContextHash": "",
"Context": "",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 70241,
"Index": 2,
"Repo": "[*repo.Repository]",
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"Description": "Successful in 28s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"RepoID": 25,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765106649,
"UpdatedUnix": 1765106649
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"MaxRepoCreation": -1,
"IsRestricted": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"LoginType": 6,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"KeepEmailPrivate": false,
"Type": 0,
"CreatedUnix": 1713634307,
"NumStars": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"NumRepos": 3,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumMembers": 0,
"ID": 3,
"Location": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowGitHook": false,
"Visibility": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"KeepActivityPrivate": false,
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Language": "en-US",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Location": "",
"IsActive": true,
"NumFollowers": 0,
"NumStars": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"IsRestricted": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LastRepoVisibility": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
5,
15,
160,
130,
189,
62,
26,
14,
129,
54,
113,
125,
195,
2,
185,
181,
90,
252,
198,
188
],
"ResolvedID": null
}
},
"ID": [
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#400)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/400\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"Context": "",
"CreatorID": 0,
"RepoID": 25,
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"State": "success",
"Description": "Successful in 1m37s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1765065755,
"Index": 4,
"RepoID": 25,
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/791/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1765065755,
"ID": 70065,
"Repo": "[*repo.Repository]"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1765098081,
"UpdatedUnix": 1765098081,
"ID": 70154,
"RepoID": 25,
"State": "success",
"Description": "Successful in 11s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Index": 7,
"Repo": "[*repo.Repository]",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"UpdatedUnix": 1765098116,
"ID": 70171,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"Index": 11,
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1765098116
},
{
"ID": 70180,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 12,
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/4",
"Description": "Failing after 46s",
"CreatorID": -2,
"CreatedUnix": 1765098163,
"UpdatedUnix": 1765098163
},
{
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/2",
"Creator": "[*user.User]",
"CreatedUnix": 1765098168,
"UpdatedUnix": 1765098168,
"ID": 70181,
"Index": 13,
"RepoID": 25,
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"ID": 70186,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"Index": 14,
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Description": "Failing after 10s",
"Creator": "[*user.User]",
"CreatedUnix": 1765098326,
"UpdatedUnix": 1765098326
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"Description": "",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Salt": "",
"Name": "luke",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"NumMembers": 0,
"LoginSource": 2,
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"Passwd": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"ID": 5,
"LoginSource": 0,
"MaxRepoCreation": -1,
"Visibility": 0,
"FullName": "renovate[bot]",
"UseCustomAvatar": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"MustChangePassword": false,
"Location": "",
"Website": "https://renovatebot.com",
"IsActive": true,
"AllowGitHook": false,
"NumTeams": 0,
"LowerName": "renovate-bot",
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"NumRepos": 0,
"DiffViewStyle": "",
"Type": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"IsAdmin": false,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowers": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
220,
67,
1,
181,
75,
1,
117,
234,
73,
193,
202,
187,
125,
224,
179,
177,
161,
250,
50,
94
],
"ResolvedID": null
}
},
"ID": [
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#398)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/398\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
]
}
}
}
},
{
"Status": {
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764493272,
"ID": 68510,
"Index": 12,
"RepoID": 25,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1764493272,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/0",
"Description": "Successful in 12s",
"Context": "Release / Tag release (push)"
},
{
"CreatorID": -2,
"CreatedUnix": 1764493310,
"UpdatedUnix": 1764493310,
"ID": 68528,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Index": 15,
"State": "success",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"CreatedUnix": 1764493382,
"ID": 68538,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1764493382,
"Index": 16,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/4",
"Description": "Successful in 1m8s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatedUnix": 1764493383,
"ID": 68539,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"UpdatedUnix": 1764493383,
"Index": 17,
"RepoID": 25
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/3",
"Description": "Failing after 11s",
"CreatedUnix": 1764493532,
"Index": 18,
"State": "failure",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1764493532,
"ID": 68544
},
{
"Index": 30,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1764979403,
"RepoID": 25,
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"Description": "Successful in 30s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1764979403,
"ID": 69689
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Salt": "",
"LowerName": "luke",
"MaxRepoCreation": -1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"Description": "",
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginType": 6,
"Type": 0,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowing": 1,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsActive": true,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"Location": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumStars": 0,
"NumMembers": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"ID": 5,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginName": "",
"Language": "en-US",
"AllowImportLocal": false,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"NumFollowing": 0,
"NumRepos": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"UpdatedUnix": 1768857135,
"Visibility": 0,
"DiffViewStyle": ""
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#397)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/397\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
173,
23,
222,
244,
220,
26,
221,
151,
202,
142,
158,
64,
2,
18,
114,
138,
133,
208,
241
],
"ResolvedID": null
}
},
"ID": [
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
}
}
}
},
{
"Status": {
"Index": 0,
"State": "failure",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"Description": "Successful in 8s",
"CreatedUnix": 1763888468,
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1763888468,
"ID": 66994,
"Index": 14,
"RepoID": 25
},
{
"CreatedUnix": 1763888498,
"UpdatedUnix": 1763888498,
"ID": 67003,
"Index": 15,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"RepoID": 25,
"Description": "Successful in 1m19s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888580,
"UpdatedUnix": 1763888580,
"ID": 67008,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"State": "success",
"Description": "Successful in 1s",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 17,
"RepoID": 25,
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1763888664,
"UpdatedUnix": 1763888664,
"ID": 67013,
"Repo": "[*repo.Repository]"
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763888734,
"ID": 67015,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatorID": -2,
"UpdatedUnix": 1763888734,
"RepoID": 25,
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"Description": "Failing after 8s"
},
{
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"Description": "Successful in 29s",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1764201732,
"ID": 67793,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764201732,
"Index": 26,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"Email": "luke@tainton.uk",
"Passwd": "",
"CreatedUnix": 1713634307,
"IsActive": true,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Name": "luke",
"LoginSource": 2,
"Salt": "",
"NumFollowers": 0,
"NumStars": 1,
"Type": 0,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"IsRestricted": false,
"NumFollowing": 1,
"NumRepos": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Language": "en-US",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"FullName": "Luke Tainton",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"LoginSource": 0,
"Type": 0,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"IsAdmin": false,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"NumRepos": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginName": "",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"Website": "https://renovatebot.com",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"NumFollowing": 0,
"LoginType": 0,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsRestricted": false,
"AllowImportLocal": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
126,
142,
13,
211,
103,
35,
185,
45,
105,
246,
8,
90,
180,
223,
112,
140,
250,
75,
70,
182
],
"ResolvedID": null
}
},
"ID": [
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#396)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/396\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4469b7ebb1f2af6799316063186883c159691553",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"Description": ""
},
"Statuses": [
{
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1763596954,
"ID": 66073,
"RepoID": 25,
"State": "success",
"Description": "Successful in 1m25s",
"Creator": "[*user.User]",
"UpdatedUnix": 1763596954,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "4469b7ebb1f2af6799316063186883c159691553"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumFollowers": 0,
"ID": 3,
"FullName": "Luke Tainton",
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"ProhibitLogin": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 1,
"Name": "luke",
"LoginSource": 2,
"Language": "en-US",
"NumRepos": 3,
"NumTeams": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Type": 0,
"Salt": "",
"Description": "",
"EmailNotificationsPreference": "enabled",
"Location": "",
"IsRestricted": false,
"AllowCreateOrganization": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"IsAdmin": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"DiffViewStyle": "",
"LoginType": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowing": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Type": 0,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot",
"LoginName": "",
"Description": "",
"NumRepos": 0,
"NumMembers": 0,
"MustChangePassword": false,
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"NumFollowers": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"ProhibitLogin": false,
"ID": 5
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#394)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/394\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
166,
1,
127,
104,
27,
25,
66,
25,
254,
228,
231,
152,
210,
90,
88,
58,
77,
254,
32,
200
],
"ResolvedID": null
}
},
"ID": [
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
]
}
}
}
},
{
"Status": {
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 25,
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1763407338,
"UpdatedUnix": 1763407338,
"ID": 65464,
"Repo": "[*repo.Repository]",
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"Description": "Successful in 35s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Language": "en-US",
"AllowImportLocal": false,
"MustChangePassword": false,
"AllowGitHook": false,
"Salt": "",
"IsActive": true,
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"NumStars": 1,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginType": 6,
"Location": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LowerName": "luke",
"LoginSource": 2,
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumTeams": 0,
"ID": 3
},
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumStars": 0,
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"NumRepos": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumMembers": 0,
"LoginName": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"LoginType": 0,
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"ID": 5,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumFollowing": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
91,
191,
127,
235,
96,
160,
229,
194,
236,
166,
1,
130,
108,
101,
81,
243,
173,
26,
39,
165
],
"ResolvedID": null
}
},
"ID": [
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#395)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/395\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
]
]
}
}
}
},
{
"Status": {
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"Description": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"UpdatedUnix": 1763283641,
"ID": 65003,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/0",
"Description": "Successful in 12s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"Index": 17,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1763283641
},
{
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763283681,
"UpdatedUnix": 1763283681,
"ID": 65019,
"Index": 21,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/1",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"RepoID": 25
},
{
"UpdatedUnix": 1763283749,
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 65028,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/4",
"Description": "Successful in 1m4s",
"Creator": "[*user.User]",
"CreatedUnix": 1763283749
},
{
"RepoID": 25,
"State": "success",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/2",
"Description": "Successful in 2s",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1763283769,
"UpdatedUnix": 1763283769,
"ID": 65030,
"Index": 23,
"Repo": "[*repo.Repository]",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"CreatorID": -2,
"CreatedUnix": 1763283876,
"Index": 24,
"RepoID": 25,
"State": "failure",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"UpdatedUnix": 1763283876,
"ID": 65034,
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/3",
"Description": "Failing after 8s",
"Context": "Release / Build Wheel File (push)"
},
{
"ID": 65191,
"RepoID": 25,
"State": "success",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 26,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0",
"Description": "Successful in 29s",
"Creator": "[*user.User]",
"CreatedUnix": 1763337724,
"UpdatedUnix": 1763337724
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumStars": 1,
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginType": 6,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"Location": "",
"Language": "en-US",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"NumRepos": 3,
"MustChangePassword": false,
"Type": 0,
"Description": "",
"IsActive": true,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"LowerName": "luke",
"Name": "luke",
"IsAdmin": true
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"MaxRepoCreation": -1,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"AllowImportLocal": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Type": 0,
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"LoginName": "",
"Website": "https://renovatebot.com",
"IsAdmin": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Location": "",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"IsRestricted": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
42,
226,
121,
99,
136,
22,
219,
203,
63,
199,
190,
63,
142,
253,
170,
197,
150,
18,
96,
246
],
"ResolvedID": null
}
},
"ID": [
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#392)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/392\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794",
"Description": "Successful in 29s",
"CreatedUnix": 1762809315,
"UpdatedUnix": 1762809315,
"ID": 63857,
"Index": 2,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"Visibility": 1,
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"NumStars": 1,
"NumTeams": 0,
"NumMembers": 0,
"Type": 0,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"Passwd": "",
"Salt": "",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Description": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumFollowing": 1,
"LowerName": "luke",
"MustChangePassword": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"Theme": "tangerine-dream",
"Name": "luke",
"IsActive": true,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"LoginName": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"AllowCreateOrganization": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Description": "",
"LastLoginUnix": 1768857135,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsRestricted": false,
"LoginType": 0,
"EmailNotificationsPreference": "disabled",
"AllowImportLocal": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"NumStars": 0,
"NumTeams": 0,
"ID": 5,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsActive": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Type": 0,
"NumFollowing": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Location": "",
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginSource": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#393)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/393\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
217,
134,
68,
223,
185,
140,
184,
24,
100,
154,
202,
88,
139,
124,
2,
123,
217,
8,
151,
36
]
}
},
"ID": [
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794"
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "",
"Context": "",
"CreatedUnix": 0
},
"Statuses": [
{
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762678874,
"UpdatedUnix": 1762678874,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/0",
"Description": "Successful in 13s",
"CreatorID": -2,
"ID": 63435,
"Index": 7
},
{
"CreatorID": -2,
"CreatedUnix": 1762678898,
"UpdatedUnix": 1762678898,
"ID": 63449,
"Index": 11,
"RepoID": 25,
"State": "success",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/1"
},
{
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "Successful in 2s",
"CreatorID": -2,
"CreatedUnix": 1762678941,
"UpdatedUnix": 1762678941,
"ID": 63456,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"ID": 63457,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/4",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762678972,
"UpdatedUnix": 1762678972,
"Index": 13,
"State": "failure",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "Failing after 1m11s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2
},
{
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/3",
"Description": "Failing after 13s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatedUnix": 1762679010,
"UpdatedUnix": 1762679010,
"Index": 14,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"ID": 63459
},
{
"UpdatedUnix": 1762732935,
"ID": 63615,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"Description": "Successful in 1m20s",
"Context": "Security / snyk (push)",
"Index": 16,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762732935
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsRestricted": false,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"NumTeams": 0,
"MustChangePassword": false,
"Type": 0,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"LoginSource": 2,
"Location": "",
"Salt": "",
"AllowImportLocal": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Description": "",
"IsAdmin": true,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Language": "en-US",
"CreatedUnix": 1713634307
},
"SigningEmail": "",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false
},
"UserCommit": {
"User": {
"NumTeams": 0,
"Location": "",
"LastRepoVisibility": false,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumStars": 0,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"Description": "",
"CreatedUnix": 1735676388,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Type": 0,
"LoginName": "",
"Language": "en-US",
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"Visibility": 0,
"LoginSource": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumRepos": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#391)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.1.1` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/391\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
243,
74,
184,
156,
199,
136,
221,
222,
40,
36,
97,
254,
160,
16,
196,
118,
221,
228,
20
],
"ResolvedID": null
}
},
"ID": [
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"Description": "",
"RepoID": 25,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"ID": 61793,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/0",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074063,
"Index": 11,
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1762074063
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Index": 14,
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/1",
"Description": "Successful in 4s",
"CreatorID": -2,
"CreatedUnix": 1762074092,
"UpdatedUnix": 1762074092,
"ID": 61802
},
{
"Index": 15,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 1m26s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 61809,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1762074179,
"UpdatedUnix": 1762074179
},
{
"ID": 61810,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatedUnix": 1762074183,
"Index": 16,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/2",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"UpdatedUnix": 1762074183
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074196,
"UpdatedUnix": 1762074196,
"ID": 61812,
"Index": 17,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/3",
"Description": "Failing after 11s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 1m32s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762560153,
"ID": 63038,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1762560153,
"Index": 29
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Salt": "",
"MaxRepoCreation": -1,
"FullName": "Luke Tainton",
"Description": "",
"Theme": "tangerine-dream",
"Passwd": "",
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumStars": 1,
"NumMembers": 0,
"LoginSource": 2,
"UseCustomAvatar": true,
"NumFollowing": 1,
"ID": 3,
"Location": "",
"Language": "en-US",
"IsAdmin": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "luke",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Type": 0,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginName": "",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"NumTeams": 0,
"Theme": "gitea-auto",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"MaxRepoCreation": -1,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"ID": 5,
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"UseCustomAvatar": true,
"NumFollowing": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
159,
187,
252,
77,
29,
152,
33,
69,
239,
98,
143,
222,
61,
77,
227,
28,
22,
98,
16,
224
],
"ResolvedID": null
}
},
"ID": [
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#390)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/390\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
]
]
}
}
}
},
{
"Statuses": [
{
"Description": "Successful in 26s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1761855246,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1761855246,
"ID": 60421,
"Index": 2,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"IsActive": true,
"IsAdmin": true,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginType": 6,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"KeepActivityPrivate": false,
"LoginSource": 2,
"ID": 3,
"Name": "luke",
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"NumTeams": 0,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Language": "en-US",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"ID": [
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
182,
29,
150,
86,
79,
148,
189,
250,
5,
243,
82,
227,
77,
32,
212,
61,
163,
166,
71
],
"ResolvedID": null
}
}
},
"User": {
"NumMembers": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"IsAdmin": true,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"DiffViewStyle": "unified",
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Email": "luke@tainton.uk",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Name": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Language": "en-US",
"Description": "",
"UseCustomAvatar": true,
"NumTeams": 0,
"Visibility": 1,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Type": 0,
"IsActive": true,
"IsRestricted": false
}
}
},
"Status": {
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0",
"CreatedUnix": 0
}
},
{
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumRepos": 3,
"FullName": "Luke Tainton",
"Passwd": "",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"NumTeams": 0,
"LowerName": "luke",
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"Type": 0,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"MaxRepoCreation": -1,
"IsAdmin": true,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"ID": 3,
"LastLoginUnix": 1776964991,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"LoginName": "",
"Type": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"ID": 5,
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Language": "en-US",
"AllowImportLocal": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginType": 0,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Location": "",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk"
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#389)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/389\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
]
],
"Tree": {
"TreeCommon": {
"ID": [
109,
54,
103,
125,
185,
0,
199,
68,
86,
224,
205,
238,
91,
28,
64,
99,
13,
1,
136,
67
],
"ResolvedID": null
}
},
"ID": [
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/0",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1761469268,
"Index": 19,
"RepoID": 25,
"Description": "Successful in 17s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"UpdatedUnix": 1761469268,
"ID": 54029,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1"
},
{
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1761469309,
"UpdatedUnix": 1761469309,
"ID": 54046,
"Index": 21,
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1761469344,
"ID": 54052,
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/2",
"Description": "Successful in 6s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"UpdatedUnix": 1761469344,
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Context": "Release / Get Release ID (push)"
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1761469378,
"ID": 54053,
"Repo": "[*repo.Repository]",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1761469378,
"Index": 23,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/4",
"Description": "Failing after 1m9s"
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1761469387,
"ID": 54055,
"Index": 24,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Description": "Failing after 10s",
"CreatorID": -2,
"CreatedUnix": 1761469387,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
},
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761782537,
"Index": 32,
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1761782537,
"ID": 60078,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1m9s"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 50362,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"CreatedUnix": 1760864454,
"UpdatedUnix": 1760864454,
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/1",
"Creator": "[*user.User]",
"ID": 50373,
"State": "success",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1760864474,
"UpdatedUnix": 1760864474,
"Index": 19
},
{
"Creator": "[*user.User]",
"Index": 20,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1760864527,
"UpdatedUnix": 1760864527,
"ID": 50380,
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)"
},
{
"Index": 21,
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/4",
"Description": "Successful in 1m15s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760864553,
"ID": 50382,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1760864553
},
{
"CreatorID": -2,
"ID": 50385,
"Repo": "[*repo.Repository]",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatedUnix": 1760864594,
"UpdatedUnix": 1760864594,
"Index": 22,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/3",
"Description": "Failing after 50s",
"Context": "Release / Build Wheel File (push)"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1760918507,
"ID": 50575,
"Index": 24,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1760918507
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Type": 0,
"Language": "en-US",
"AllowGitHook": false,
"NumFollowing": 0,
"NumStars": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"IsActive": true,
"Theme": "gitea-auto",
"LoginName": "",
"IsAdmin": false,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Location": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"NumFollowers": 0,
"Visibility": 0,
"ID": 5,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
254,
243,
36,
142,
163,
222,
112,
187,
187,
236,
157,
22,
236,
160,
31,
39,
162,
244,
236,
236
]
}
},
"ID": [
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#382)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/382\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
]
]
}
},
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumRepos": 3,
"Visibility": 1,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Passwd": "",
"LoginType": 6,
"Salt": "",
"Language": "en-US",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Location": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"IsActive": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"FullName": "Luke Tainton",
"Type": 0,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"NumTeams": 0,
"LowerName": "luke",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Description": "",
"AllowImportLocal": false,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"Index": 0,
"State": "success",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Description": "Successful in 2m2s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 49433,
"State": "success",
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"CreatorID": -2,
"CreatedUnix": 1760378766,
"UpdatedUnix": 1760378766,
"Index": 2,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumStars": 1,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Description": "",
"IsActive": true,
"IsAdmin": true,
"NumFollowing": 1,
"NumMembers": 0,
"LoginSource": 2,
"Type": 0,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Passwd": "",
"Salt": "",
"AllowImportLocal": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"LoginType": 6,
"Location": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"LowerName": "luke",
"Passwd": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Description": "",
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumStars": 1,
"Visibility": 1,
"Name": "luke",
"Location": "",
"Salt": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Type": 0,
"IsAdmin": true,
"AllowGitHook": false,
"PasswdHashAlgo": "",
"IsRestricted": false,
"UseCustomAvatar": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
62,
247,
80,
124,
183,
229,
128,
57,
154,
145,
227,
147,
52,
32,
207,
81,
37,
171,
140,
45
],
"ResolvedID": null
}
},
"ID": [
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(ci): Remove dependencies of dependencies (#388)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/388\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
]
]
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"Description": "Successful in 2m5s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1760377958,
"Index": 2,
"State": "success",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760377958,
"ID": 49415,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"LoginType": 0,
"LoginName": "",
"Type": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumTeams": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"IsRestricted": false,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency idna to v3.11 (#386)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [idna](https://github.com/kjd/idna) ([changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)) | `==3.10` -> `==3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.11`](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n[Compare Source](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/386\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
]
],
"Tree": {
"TreeCommon": {
"ID": [
88,
190,
39,
144,
105,
200,
65,
23,
141,
112,
122,
41,
215,
29,
96,
55,
100,
121,
193,
247
],
"ResolvedID": null
}
}
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"LoginType": 6,
"IsAdmin": true,
"NumStars": 1,
"NumMembers": 0,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Salt": "",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Name": "luke",
"Passwd": "",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"ID": 3,
"EmailNotificationsPreference": "enabled",
"UpdatedUnix": 1776964991,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumTeams": 0,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"LowerName": "luke",
"Type": 0,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
}
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"NumRepos": 3,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"LowerName": "luke",
"KeepEmailPrivate": false,
"IsActive": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Passwd": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"NumFollowing": 1,
"NumStars": 1,
"MustChangePassword": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsRestricted": false,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Type": 0,
"Location": "",
"Name": "luke",
"Description": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"ID": 3,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Visibility": 1,
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumMembers": 0,
"DiffViewStyle": "",
"AllowGitHook": false,
"Visibility": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Location": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"NumRepos": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsRestricted": false,
"NumFollowers": 0,
"NumStars": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"Website": "https://renovatebot.com",
"IsActive": true,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.5.0 (#384)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.4.0` -> `==4.5.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.5.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.5.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0)\n\n<!-- Release notes generated using configuration in .github/release.yml at main -->\n\n#### What's Changed\n\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​376](https://github.com/tox-dev/platformdirs/pull/376)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​378](https://github.com/tox-dev/platformdirs/pull/378)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​379](https://github.com/tox-dev/platformdirs/pull/379)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​381](https://github.com/tox-dev/platformdirs/pull/381)\n- Add support for Python 3.14 by [@​hugovk](https://github.com/hugovk) in [#​382](https://github.com/tox-dev/platformdirs/pull/382)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​383](https://github.com/tox-dev/platformdirs/pull/383)\n- Update Windows file paths in README by [@​ParadaCarleton](https://github.com/ParadaCarleton) in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​384](https://github.com/tox-dev/platformdirs/pull/384)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​387](https://github.com/tox-dev/platformdirs/pull/387)\n- Bump astral-sh/setup-uv from 6 to 7 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​388](https://github.com/tox-dev/platformdirs/pull/388)\n- Drop 3.9 support by [@​gaborbernat](https://github.com/gaborbernat) in [#​389](https://github.com/tox-dev/platformdirs/pull/389)\n\n#### New Contributors\n\n- [@​ParadaCarleton](https://github.com/ParadaCarleton) made their first contribution in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/384\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
]
],
"Tree": {
"TreeCommon": {
"ID": [
71,
63,
1,
192,
221,
66,
155,
88,
185,
135,
226,
161,
186,
138,
4,
131,
157,
31,
74,
166
],
"ResolvedID": null
}
},
"ID": [
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
}
}
},
"Status": {
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1760259760,
"UpdatedUnix": 1760259760,
"ID": 49020,
"Index": 6,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Has been skipped",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/1"
},
{
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"CreatedUnix": 1760259763,
"UpdatedUnix": 1760259763,
"ID": 49022,
"Index": 7,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/2",
"Description": "Has been skipped",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"Index": 8,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"RepoID": 25,
"Description": "Failing after 1m49s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1760259765,
"UpdatedUnix": 1760259765,
"ID": 49024
},
{
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatedUnix": 1760259766,
"UpdatedUnix": 1760259766,
"ID": 49026,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/3",
"Description": "Has been skipped",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 9
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760259770,
"Index": 10,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1760259770,
"ID": 49028,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Has been skipped"
},
{
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1760314796,
"UpdatedUnix": 1760314796,
"ID": 49161,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Successful in 19m12s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Index": 12
}
]
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"Warning": false,
"CommittingUser": {
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"Name": "luke",
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Description": "",
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"LoginType": 6,
"Type": 0,
"IsActive": true,
"NumFollowers": 0,
"NumMembers": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Location": "",
"Salt": "",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"NumTeams": 0,
"ID": 3,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"UseCustomAvatar": true,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginSource": 2
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumMembers": 0,
"AllowCreateOrganization": false,
"Name": "renovate-bot",
"Location": "",
"AllowGitHook": false,
"LastRepoVisibility": false,
"IsActive": true,
"Email": "renovate-bot@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 0,
"LoginName": "",
"Language": "en-US",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"ID": 5,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MaxRepoCreation": -1,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LoginSource": 0,
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"IsAdmin": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"IsRestricted": false,
"NumFollowing": 0
},
"Commit": {
"ID": [
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tomli to v2.3.0 (#385)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [tomli](https://github.com/hukkin/tomli) ([changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md)) | `==2.2.1` -> `==2.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hukkin/tomli (tomli)</summary>\n\n### [`v2.3.0`](https://github.com/hukkin/tomli/blob/HEAD/CHANGELOG.md#230)\n\n[Compare Source](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0)\n\n- Added\n - Binary wheels for Python 3.14 (also free-threaded)\n- Performance\n - Reduced import time\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/385\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
29,
169,
234,
15,
190,
223,
62,
143,
49,
81,
119,
29,
180,
16,
48,
193,
65,
13,
114
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66",
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 48813,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66",
"Creator": "[*user.User]",
"CreatedUnix": 1760181131,
"UpdatedUnix": 1760181131,
"Index": 2,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
]
},
{
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"State": "success",
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"ID": 48765,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1760142525,
"UpdatedUnix": 1760142525,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"Description": "Successful in 27m38s"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"LowerName": "luke",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"IsAdmin": true,
"LoginName": "luke@tainton.uk",
"Name": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Visibility": 1,
"AllowCreateOrganization": false,
"Theme": "tangerine-dream",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"ID": 3,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"Description": "",
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumRepos": 3
},
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false
},
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"Name": "renovate-bot",
"LoginName": "",
"Language": "en-US",
"IsActive": true,
"AllowCreateOrganization": false,
"LoginSource": 0,
"Type": 0,
"IsAdmin": false,
"IsRestricted": false,
"NumMembers": 0,
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"NumStars": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"Website": "https://renovatebot.com"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update astral-sh/setup-uv action to v7 (#383)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | action | major | `v6` -> `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>\n\n### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n[Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzOS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/383\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
218,
217,
40,
104,
71,
145,
149,
198,
245,
229,
14,
217,
16,
231,
193,
194,
128,
11,
229
],
"ResolvedID": null
}
},
"ID": [
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 25,
"Context": ""
},
"Statuses": [
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 4,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"Description": "Successful in 24m11s",
"CreatedUnix": 1759796682,
"UpdatedUnix": 1759796682,
"ID": 48008,
"RepoID": 25,
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Passwd": "",
"MustChangePassword": false,
"Description": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Language": "en-US",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"LoginType": 6,
"Type": 0,
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 1,
"LoginSource": 2,
"Location": "",
"IsActive": true,
"IsAdmin": true,
"IsRestricted": false,
"NumFollowing": 1,
"NumStars": 1,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumTeams": 0,
"ID": 3,
"Email": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"ID": 5,
"NumStars": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"AllowImportLocal": false,
"LoginName": "",
"Location": "",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 0,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Language": "en-US",
"NumFollowers": 0,
"Visibility": 0,
"DiffViewStyle": ""
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#380)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/380\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
112,
215,
7,
250,
219,
211,
180,
81,
141,
230,
203,
26,
91,
177,
251,
221,
168,
51,
121
],
"ResolvedID": null
}
},
"ID": [
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 25,
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": ""
},
"Statuses": [
{
"Index": 4,
"RepoID": 25,
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759774356,
"ID": 47938,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Description": "Has been cancelled",
"UpdatedUnix": 1759774356
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"Location": "",
"NumStars": 1,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"NumTeams": 0,
"Visibility": 1,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Passwd": "",
"Description": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginType": 6,
"AllowGitHook": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Language": "en-US",
"NumFollowers": 0,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"NumFollowing": 0,
"LoginName": "",
"Type": 0,
"Description": "",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"ID": 5,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"MustChangePassword": false,
"LoginType": 0,
"LoginSource": 0,
"Language": "en-US",
"IsRestricted": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumRepos": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk"
},
"Commit": {
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency attrs to v25.4.0 (#381)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [attrs](https://github.com/python-attrs/attrs) ([changelog](https://www.attrs.org/en/stable/changelog.html)) | `==25.3.0` -> `==25.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-attrs/attrs (attrs)</summary>\n\n### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06)\n\n[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0)\n\n##### Backwards-incompatible Changes\n\n- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.\n\n Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.\n If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.\n\n Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.\n\n This shouldn't be a problem for most users, unless you have a pattern like this:\n\n ```python\n @​attrs.define(kw_only=True)\n class Base:\n a: int\n b: int = attrs.field(default=1, kw_only=False)\n\n @​attrs.define\n class Subclass(Base):\n c: int\n ```\n\n Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).\n Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.\n [#​1457](https://github.com/python-attrs/attrs/issues/1457)\n\n##### Changes\n\n- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\\_only* was not specified).\n [#​1427](https://github.com/python-attrs/attrs/issues/1427)\n- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/).\n [#​1446](https://github.com/python-attrs/attrs/issues/1446),\n [#​1451](https://github.com/python-attrs/attrs/issues/1451)\n- `attrs.validators.deep_mapping()` now allows to leave out either *key\\_validator* xor *value\\_validator*.\n [#​1448](https://github.com/python-attrs/attrs/issues/1448)\n- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.\n [#​1449](https://github.com/python-attrs/attrs/issues/1449)\n- Added a new **experimental** way to inspect classes:\n\n `attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.\n\n The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.\n [#​1454](https://github.com/python-attrs/attrs/issues/1454)\n- Fixed annotations for `attrs.field(converter=...)`.\n Previously, a `tuple` of converters was only accepted if it had exactly one element.\n [#​1461](https://github.com/python-attrs/attrs/issues/1461)\n- The performance of `attrs.asdict()` has been improved by 45–260%.\n [#​1463](https://github.com/python-attrs/attrs/issues/1463)\n- The performance of `attrs.astuple()` has been improved by 49–270%.\n [#​1469](https://github.com/python-attrs/attrs/issues/1469)\n- The type annotation for `attrs.validators.or_()` now allows for different types of validators.\n\n This was only an issue on Pyright.\n [#​1474](https://github.com/python-attrs/attrs/issues/1474)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
82,
123,
56,
178,
207,
166,
234,
42,
124,
227,
17,
225,
25,
205,
213,
160,
117,
239,
124,
123
],
"ResolvedID": null
}
},
"ID": [
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
}
}
}
},
{
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowers": 0,
"Salt": "",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"IsActive": true,
"ID": 3,
"MustChangePassword": false,
"LoginSource": 2,
"Name": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"IsRestricted": false,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Type": 0,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"NumMembers": 0,
"Visibility": 1,
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Location": "",
"UseCustomAvatar": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Visibility": 0,
"Type": 0,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AllowImportLocal": false,
"NumMembers": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Location": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"IsActive": true,
"AllowCreateOrganization": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"KeepActivityPrivate": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
]
],
"Tree": {
"TreeCommon": {
"ID": [
1,
140,
118,
132,
127,
206,
47,
59,
178,
36,
114,
114,
252,
105,
232,
24,
144,
249,
44,
142
],
"ResolvedID": null
}
},
"ID": [
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.10.5 (#378)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.8.3` -> `==2025.10.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.10.5`](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/378\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
},
"Status": {
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Description": "",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"UpdatedUnix": 1759710141,
"Index": 4,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Description": "Successful in 21m35s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"ID": 47839,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759710141
}
]
},
{
"Statuses": [
{
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/625/jobs/0",
"Description": "Successful in 2m15s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"RepoID": 25,
"State": "success",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759624495,
"UpdatedUnix": 1759624495,
"ID": 47679,
"Index": 35,
"Repo": "[*repo.Repository]"
},
{
"Index": 40,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/0",
"Description": "Successful in 1m22s",
"CreatorID": -2,
"UpdatedUnix": 1759654956,
"ID": 47738,
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1759654956
},
{
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/1",
"Description": "Successful in 3s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759655087,
"UpdatedUnix": 1759655087,
"ID": 47749,
"Index": 42,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 47751,
"Index": 43,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/4",
"Description": "Failing after 5m8s",
"Creator": "[*user.User]",
"CreatedUnix": 1759655396,
"UpdatedUnix": 1759655396,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"CreatorID": -2,
"CreatedUnix": 1759655401,
"UpdatedUnix": 1759655401,
"ID": 47752,
"Index": 44,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/2",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"ID": 47756,
"Index": 45,
"RepoID": 25,
"State": "failure",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"Description": "Failing after 35s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Repo": "[*repo.Repository]",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759655442,
"UpdatedUnix": 1759655442
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumMembers": 0,
"IsAdmin": false,
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Location": "",
"MaxRepoCreation": -1,
"NumStars": 0,
"NumRepos": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LoginName": "",
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"NumFollowing": 0,
"LoginType": 0,
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"AllowCreateOrganization": false
},
"Commit": {
"Parents": [
[
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
]
],
"Tree": {
"TreeCommon": {
"ID": [
188,
198,
62,
242,
178,
189,
9,
100,
230,
40,
39,
18,
117,
218,
178,
3,
230,
110,
160,
171
],
"ResolvedID": null
}
},
"ID": [
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#377)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/377\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
},
"Verification": {
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"Location": "",
"AllowImportLocal": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"Type": 0,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"LoginSource": 2,
"Language": "en-US",
"Visibility": 1,
"UpdatedUnix": 1776964991,
"NumRepos": 3,
"NumMembers": 0,
"Theme": "tangerine-dream",
"Name": "luke",
"Salt": "",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"IsRestricted": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"Description": "",
"IsActive": true,
"ID": 3,
"LowerName": "luke",
"Passwd": ""
},
"SigningEmail": ""
}
},
"Status": {
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 2,
"RepoID": 25,
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1758521980,
"UpdatedUnix": 1758521980,
"ID": 45637,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 3m38s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Location": "",
"Salt": "",
"IsAdmin": true,
"NumFollowers": 0,
"NumFollowing": 1,
"Name": "luke",
"Language": "en-US",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"Type": 0,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"LoginSource": 2,
"IsActive": true,
"NumStars": 1,
"NumRepos": 3,
"KeepActivityPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"Theme": "tangerine-dream"
},
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsActive": true,
"IsRestricted": false,
"NumStars": 0,
"NumRepos": 0,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"NumTeams": 0,
"ID": 5,
"KeepEmailPrivate": true,
"LoginType": 0,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"DiffViewStyle": "",
"LoginSource": 0,
"LoginName": "",
"Location": "",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"Type": 0,
"IsAdmin": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"LowerName": "renovate-bot"
},
"Commit": {
"Parents": [
[
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
],
"Tree": {
"TreeCommon": {
"ID": [
163,
76,
82,
94,
73,
104,
32,
102,
6,
46,
43,
2,
99,
144,
193,
72,
43,
144,
22,
109
],
"ResolvedID": null
}
},
"ID": [
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#376)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/376\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"ID": 45591,
"RepoID": 25,
"State": "success",
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 4,
"Repo": "[*repo.Repository]",
"Description": "Successful in 27m11s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1758500849,
"UpdatedUnix": 1758500849
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Name": "luke",
"KeepEmailPrivate": false,
"LoginType": 6,
"Type": 0,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumTeams": 0,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Salt": "",
"Language": "en-US",
"IsAdmin": true,
"Visibility": 1,
"Theme": "tangerine-dream",
"ID": 3,
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"IsRestricted": false,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"Location": "",
"MaxRepoCreation": -1
},
"SigningEmail": ""
},
"UserCommit": {
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.5 (#375)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.4` -> `==3.2.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/375\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
28,
59,
171,
205,
223,
162,
110,
114,
137,
221,
55,
150,
33,
137,
37,
32,
195,
0,
72,
31
],
"ResolvedID": null
}
},
"ID": [
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
},
"User": {
"LoginName": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginType": 0,
"Website": "https://renovatebot.com",
"NumRepos": 0,
"NumMembers": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumFollowing": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LastLoginUnix": 1768857135,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"Location": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumStars": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Description": "",
"AllowCreateOrganization": false,
"FullName": "renovate[bot]"
}
}
}
},
{
"Statuses": [
{
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/600/jobs/0",
"Description": "Failing after 8m13s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758413334,
"UpdatedUnix": 1758413334,
"ID": 45438,
"Index": 6,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1758445332,
"Index": 12,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/0",
"Description": "Successful in 1m21s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"UpdatedUnix": 1758445332,
"ID": 45492,
"RepoID": 25,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8"
},
{
"Description": "Successful in 5m28s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"Index": 13,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/1",
"CreatorID": -2,
"CreatedUnix": 1758445751,
"UpdatedUnix": 1758445751,
"ID": 45506,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8"
},
{
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1758445771,
"ID": 45511,
"RepoID": 25,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"CreatedUnix": 1758445771,
"Index": 14,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/2"
},
{
"RepoID": 25,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Successful in 3m2s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatorID": -2,
"CreatedUnix": 1758445957,
"ID": 45512,
"Index": 15,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/3",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1758445957
},
{
"CreatedUnix": 1758445962,
"UpdatedUnix": 1758445962,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"Description": "Successful in 8m55s",
"Creator": "[*user.User]",
"ID": 45513,
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Description": "",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Salt": "",
"Language": "en-US",
"NumStars": 1,
"NumTeams": 0,
"ID": 3,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"Email": "luke@tainton.uk",
"Location": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"LoginSource": 2,
"Type": 0,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"Passwd": "",
"LoginType": 6,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"ProhibitLogin": false,
"Visibility": 0,
"KeepActivityPrivate": false,
"Location": "",
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumStars": 0,
"Theme": "gitea-auto",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"IsActive": true,
"IsRestricted": false,
"LoginType": 0,
"LoginSource": 0,
"LoginName": "",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"ID": 5,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Name": "renovate-bot",
"Type": 0,
"Language": "en-US",
"IsAdmin": false,
"AllowGitHook": false,
"NumTeams": 0,
"NumMembers": 0,
"NumFollowers": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Parents": [
[
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
117,
182,
82,
8,
25,
164,
55,
189,
230,
91,
38,
24,
62,
28,
101,
247,
243,
119,
139,
179
],
"ResolvedID": null
}
},
"ID": [
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#374)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/374\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"RepoID": 25,
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"ContextHash": "",
"CreatedUnix": 0,
"ID": 0,
"Index": 0
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"Creator": "[*user.User]"
},
"Statuses": [
{
"CreatedUnix": 1758240548,
"RepoID": 25,
"State": "failure",
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"Description": "Failing after 8m8s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1758240548,
"ID": 45176,
"Index": 4,
"Repo": "[*repo.Repository]",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"TrustStatus": "",
"CommittingUser": {
"Type": 0,
"Salt": "",
"Language": "en-US",
"KeepEmailPrivate": false,
"LoginType": 6,
"AllowGitHook": false,
"NumRepos": 3,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 1,
"IsAdmin": true,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Description": "",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Name": "luke",
"Passwd": "",
"LoginSource": 2,
"LastRepoVisibility": false,
"IsActive": true,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginName": "",
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumTeams": 0,
"NumMembers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"KeepActivityPrivate": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Location": "",
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Description": "",
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"IsAdmin": false,
"NumStars": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency click to v8.3.0 (#373)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.2` -> `==8.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.3.0`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-830)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.2...8.3.0)\n\nReleased 2025-09-15\n\n- **Improved flag option handling**: Reworked the relationship between `flag_value`\n and `default` parameters for better consistency:\n\n - The `default` parameter value is now preserved as-is and passed directly\n to CLI functions (no more unexpected transformations)\n - Exception: flag options with `default=True` maintain backward compatibility\n by defaulting to their `flag_value`\n - The `default` parameter can now be any type (`bool`, `None`, etc.)\n - Fixes inconsistencies reported in: :issue:`1992` :issue:`2514` :issue:`2610`\n :issue:`3024` :pr:`3030`\n- Allow `default` to be set on `Argument` for `nargs = -1`. :issue:`2164`\n :pr:`3030`\n- Show correct auto complete value for `nargs` option in combination with flag\n option :issue:`2813`\n- Show correct auto complete value for nargs option in combination with flag option :issue:`2813`\n- Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:`2995` :pr:`3013`\n- Lazily import `shutil`. :pr:`3023`\n- Properly forward exception information to resources registered with\n `click.core.Context.with_resource()`. :issue:`2447` :pr:`3058`\n- Fix regression related to EOF handling in CliRunner. :issue:`2939`:pr:`2940`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuOSIsInVwZGF0ZWRJblZlciI6IjQxLjExNi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/373\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
]
],
"Tree": {
"TreeCommon": {
"ID": [
43,
67,
240,
174,
209,
50,
112,
104,
21,
81,
93,
168,
178,
28,
183,
39,
237,
187,
104,
237
],
"ResolvedID": null
}
},
"ID": [
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"Description": "",
"Context": "",
"RepoID": 25,
"State": "success",
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2"
},
"Statuses": [
{
"UpdatedUnix": 1758155934,
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"Description": "Successful in 38m8s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758155934,
"ID": 45058,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"ID": 3,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"NumFollowers": 0,
"Visibility": 1,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Salt": "",
"Description": "",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"IsAdmin": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumTeams": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Type": 0,
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"IsActive": true,
"Passwd": "",
"PasswdHashAlgo": "",
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Visibility": 0,
"LoginType": 0,
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"LoginName": "",
"Language": "en-US",
"IsActive": true,
"NumFollowing": 0,
"NumMembers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumRepos": 0,
"UseCustomAvatar": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto"
},
"Commit": {
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#361)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/361\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
]
],
"Tree": {
"TreeCommon": {
"ID": [
205,
75,
65,
101,
46,
191,
110,
249,
90,
153,
11,
227,
142,
70,
123,
98,
38,
144,
227,
130
],
"ResolvedID": null
}
},
"ID": [
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
}
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"Description": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1757928268,
"UpdatedUnix": 1757928268,
"Index": 2,
"RepoID": 25,
"State": "success",
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"Description": "Successful in 1m25s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"ID": 44704,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"ProhibitLogin": false,
"NumStars": 1,
"NumRepos": 3,
"Visibility": 1,
"MustChangePassword": false,
"Type": 0,
"MaxRepoCreation": -1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"Language": "en-US",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"Name": "luke",
"Salt": "",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"AvatarEmail": "luke@tainton.uk",
"IsAdmin": true,
"KeepEmailPrivate": false,
"LoginType": 6,
"Description": "",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"IsActive": true,
"IsRestricted": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"Description": "",
"NumStars": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"IsRestricted": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"Name": "renovate-bot",
"LoginName": "",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"KeepActivityPrivate": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": false
},
"Commit": {
"Parents": [
[
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
],
"Tree": {
"TreeCommon": {
"ID": [
233,
56,
47,
187,
159,
30,
71,
221,
38,
146,
162,
24,
110,
224,
79,
207,
225,
239,
83,
176
],
"ResolvedID": null
}
},
"ID": [
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#369)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/369\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"State": "success",
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"Creator": "[*user.User]"
},
"Statuses": [
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0",
"Description": "Successful in 1m7s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 2,
"State": "success",
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"Creator": "[*user.User]",
"CreatedUnix": 1757927632,
"UpdatedUnix": 1757927632,
"ID": 44687
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"NumRepos": 3,
"LoginSource": 2,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumMembers": 0,
"KeepEmailPrivate": false,
"NumTeams": 0,
"LowerName": "luke",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Type": 0,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Description": "",
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"MustChangePassword": false,
"LoginType": 6,
"Salt": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"LoginType": 0,
"IsAdmin": false,
"IsRestricted": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"Visibility": 0,
"Name": "renovate-bot",
"Description": "",
"LastLoginUnix": 1768857135,
"NumStars": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"ID": 5,
"LowerName": "renovate-bot",
"CreatedUnix": 1735676388,
"IsActive": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#372)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/372\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
]
],
"Tree": {
"TreeCommon": {
"ID": [
161,
250,
245,
85,
155,
92,
60,
180,
42,
83,
168,
33,
232,
47,
34,
30,
120,
205,
122,
85
],
"ResolvedID": null
}
},
"ID": [
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
}
}
}
},
{
"Statuses": [
{
"ID": 44637,
"State": "success",
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79",
"Description": "Successful in 29m11s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757896183,
"Index": 4,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1757896183
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"ID": 5,
"FullName": "renovate[bot]",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"NumRepos": 0,
"KeepEmailPrivate": true,
"AllowGitHook": false,
"NumStars": 0,
"Name": "renovate-bot",
"LoginName": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Type": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumMembers": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Language": "en-US",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"Visibility": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"DiffViewStyle": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
176,
42,
26,
51,
178,
3,
106,
22,
134,
151,
203,
207,
61,
71,
151,
126,
205,
115,
190,
130
],
"ResolvedID": null
}
},
"ID": [
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.4 (#371)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.3` -> `==3.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjQxLjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/371\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
]
]
}
},
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsAdmin": true,
"LowerName": "luke",
"Name": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"NumFollowers": 0,
"NumMembers": 0,
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Description": "",
"UseCustomAvatar": true,
"NumRepos": 3,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Salt": "",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"NumTeams": 0,
"DiffViewStyle": "unified",
"ID": 3,
"Passwd": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"IsActive": true,
"NumFollowing": 1
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79",
"Description": "",
"ContextHash": "",
"Context": "",
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
}
},
{
"Status": {
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3"
},
"Statuses": [
{
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/570/jobs/0",
"Description": "Failing after 31m50s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1757810006,
"ID": 44484,
"Index": 11,
"Repo": "[*repo.Repository]",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1757810006,
"RepoID": 25,
"State": "failure"
},
{
"Description": "Successful in 25s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1757840494,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757840494,
"ID": 44538,
"Index": 16,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/0"
},
{
"CreatorID": -2,
"CreatedUnix": 1757840827,
"UpdatedUnix": 1757840827,
"Index": 20,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"ID": 44553,
"Repo": "[*repo.Repository]",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "Successful in 7s",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/4",
"CreatorID": -2,
"CreatedUnix": 1757841248,
"UpdatedUnix": 1757841248,
"ID": 44554,
"Index": 21,
"State": "failure",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "Failing after 7m2s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)"
},
{
"CreatedUnix": 1757841259,
"UpdatedUnix": 1757841259,
"ID": 44559,
"Index": 22,
"State": "success",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Description": "Successful in 6s",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]"
},
{
"CreatorID": -2,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3",
"Description": "Failing after 24s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatedUnix": 1757841288,
"UpdatedUnix": 1757841288,
"ID": 44560,
"Index": 23,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"LoginSource": 0,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"LastRepoVisibility": false,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"NumStars": 0,
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"NumRepos": 0,
"Location": "",
"Description": "",
"ProhibitLogin": false,
"Visibility": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"KeepActivityPrivate": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
70,
63,
163,
243,
201,
255,
165,
210,
209,
76,
203,
37,
91,
176,
54,
61,
161,
113,
89,
136
],
"ResolvedID": null
}
},
"ID": [
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#368)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/368\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
]
]
}
},
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Visibility": 1,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Salt": "",
"KeepActivityPrivate": false,
"Location": "",
"IsAdmin": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Description": "",
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"Passwd": "",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumStars": 1,
"ID": 3,
"KeepEmailPrivate": false,
"IsRestricted": false,
"Theme": "tangerine-dream",
"LastRepoVisibility": false,
"NumRepos": 3,
"NumTeams": 0,
"CreatedUnix": 1713634307,
"MustChangePassword": false,
"LoginSource": 2,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Language": "en-US",
"IsActive": true
},
"SigningEmail": ""
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432",
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0",
"Description": "Successful in 1m51s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Index": 2,
"RepoID": 25,
"State": "success",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757422529,
"UpdatedUnix": 1757422529,
"ID": 43939,
"Repo": "[*repo.Repository]",
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"KeepEmailPrivate": false,
"LoginType": 6,
"Type": 0,
"Location": "",
"NumFollowers": 0,
"NumRepos": 3,
"KeepActivityPrivate": false,
"ID": 3,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"Name": "luke",
"LoginSource": 2,
"Description": "",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"IsActive": true,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"NumStars": 1,
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"DiffViewStyle": "unified",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": ""
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginName": "",
"Location": "",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"IsActive": true,
"Type": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"NumTeams": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Language": "en-US",
"LastLoginUnix": 1768857135,
"ID": 5,
"KeepEmailPrivate": true,
"IsAdmin": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"Description": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"NumRepos": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginType": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"Visibility": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
182,
223,
228,
2,
1,
182,
134,
1,
240,
255,
148,
155,
157,
143,
29,
227,
169,
166,
32,
41
]
}
},
"ID": [
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#367)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/367\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
]
]
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"State": "failure",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"Description": "",
"Context": ""
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1757235700,
"Index": 35,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757235700,
"ID": 43686,
"RepoID": 25,
"State": "success",
"Description": "Successful in 44s"
},
{
"Index": 39,
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/4",
"Description": "Failing after 8m23s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1757236211,
"UpdatedUnix": 1757236211,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"ID": 43696
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757236284,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/1",
"Context": "Release / Create Release (push)",
"UpdatedUnix": 1757236284,
"ID": 43697,
"Index": 40,
"State": "success",
"Description": "Successful in 9m42s"
},
{
"CreatorID": -2,
"CreatedUnix": 1757236291,
"UpdatedUnix": 1757236291,
"ID": 43698,
"Index": 41,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/2",
"Description": "Successful in 6s",
"Context": "Release / Get Release ID (push)",
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]"
},
{
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/3",
"Description": "Failing after 48s",
"Creator": "[*user.User]",
"CreatedUnix": 1757236345,
"UpdatedUnix": 1757236345,
"Index": 42,
"RepoID": 25,
"State": "failure",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"ID": 43699,
"Repo": "[*repo.Repository]"
},
{
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"Description": "Successful in 16m29s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"RepoID": 25,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757377042,
"UpdatedUnix": 1757377042,
"ID": 43862,
"Index": 46,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"IsRestricted": false,
"Location": "",
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowers": 0,
"NumFollowing": 1,
"Visibility": 1,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"NumStars": 1,
"NumRepos": 3,
"ID": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LastRepoVisibility": false,
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginType": 6,
"Salt": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Passwd": "",
"NumTeams": 0,
"NumMembers": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Visibility": 0,
"Theme": "gitea-auto",
"LoginType": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumTeams": 0,
"NumMembers": 0,
"LoginSource": 0,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Type": 0,
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"ID": 5,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.4.0 (#366)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.3.8` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.4.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0)\n\n##### What's Changed\n\n- feat: improve homebrew path detection by [@​daeho-ro](https://github.com/daeho-ro) in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n##### New Contributors\n\n- [@​daeho-ro](https://github.com/daeho-ro) made their first contribution in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44My4yIiwidXBkYXRlZEluVmVyIjoiNDEuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/366\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
]
],
"Tree": {
"TreeCommon": {
"ID": [
111,
156,
174,
195,
238,
98,
46,
234,
188,
112,
66,
46,
136,
95,
104,
16,
216,
194,
131,
106
],
"ResolvedID": null
}
},
"ID": [
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"State": "success",
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d",
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0
},
"Statuses": [
{
"State": "success",
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1756339718,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"Description": "Successful in 7m41s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1756339718,
"ID": 42439,
"Index": 8
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Location": "",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LoginSource": 2,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumStars": 1,
"PasswdHashAlgo": "",
"Description": "",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumRepos": 3,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Visibility": 1,
"DiffViewStyle": "unified",
"Type": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"KeepEmailPrivate": false,
"Salt": "",
"NumTeams": 0,
"NumMembers": 0,
"Theme": "tangerine-dream",
"IsAdmin": true,
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"Name": "luke"
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Location": "",
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"NumStars": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 0,
"IsActive": true,
"IsAdmin": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UseCustomAvatar": true,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginName": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"IsRestricted": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
113,
72,
148,
213,
189,
217,
216,
35,
120,
106,
18,
160,
71,
142,
45,
61,
11,
149,
209
],
"ResolvedID": null
}
},
"ID": [
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#365)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/365\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 41913,
"Index": 10,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/0",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1756026078,
"UpdatedUnix": 1756026078,
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Description": "Successful in 19s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/1",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1756026116,
"UpdatedUnix": 1756026116,
"ID": 41925,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 5s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 13
},
{
"ID": 41929,
"Index": 14,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1756026145,
"UpdatedUnix": 1756026145,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Description": "Failing after 2m42s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"Index": 15,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/4",
"CreatorID": -2,
"CreatedUnix": 1756026278,
"UpdatedUnix": 1756026278,
"ID": 41931
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1756026307,
"UpdatedUnix": 1756026307,
"ID": 41934,
"Index": 16,
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/3",
"Description": "Failing after 29s",
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)"
},
{
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Description": "Successful in 7m12s",
"Creator": "[*user.User]",
"CreatedUnix": 1756080490,
"ID": 42074,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1756080490,
"Index": 18
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Location": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"NumRepos": 3,
"NumMembers": 0,
"ID": 3,
"AllowCreateOrganization": false,
"KeepActivityPrivate": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumStars": 1,
"IsAdmin": true,
"Name": "luke",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"IsRestricted": false,
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"LoginSource": 2
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"Visibility": 0,
"LoginType": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumMembers": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false,
"NumStars": 0,
"NumRepos": 0,
"IsAdmin": false,
"ID": 5,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"DiffViewStyle": "",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumFollowing": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"LoginSource": 0,
"Type": 0,
"Location": "",
"Description": "",
"LastRepoVisibility": false
},
"Commit": {
"CommitMessage": "chore(deps): update dependency lazy-object-proxy to v1.12.0 (#364)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) ([changelog](https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html)) | `==1.11.0` -> `==1.12.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ionelmc/python-lazy-object-proxy (lazy-object-proxy)</summary>\n\n### [`v1.12.0`](https://github.com/ionelmc/python-lazy-object-proxy/blob/HEAD/CHANGELOG.rst#1120-2025-08-22)\n\n[Compare Source](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0)\n\n- Fixed testing issues when C extensions are not desired.\n Contributed by Michał Górny in `#​79 <https://github.com/ionelmc/python-lazy-object-proxy/pull/79>`\\_.\n- Added support for GraalPy.\n Contributed by Michael Šimáček in `#​87 <https://github.com/ionelmc/python-lazy-object-proxy/pull/87>`\\_.\n- Fixed testing issues on Python 3.14.\n Contributed by Michał Górny in `#​88 <https://github.com/ionelmc/python-lazy-object-proxy/pull/88>`\\_.\n- Modernized packaging to have metadata in `pyproject.toml`.\n- Added Python 3.14 wheels.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS42IiwidXBkYXRlZEluVmVyIjoiNDEuODEuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/364\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
]
],
"Tree": {
"TreeCommon": {
"ID": [
77,
3,
220,
26,
181,
200,
226,
220,
36,
183,
196,
82,
248,
210,
135,
74,
72,
103,
131,
2
],
"ResolvedID": null
}
},
"ID": [
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Context": "",
"CreatorID": 0,
"Index": 0,
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"Description": ""
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1755821309,
"ID": 41618,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"Description": "Successful in 7m26s",
"CreatedUnix": 1755821309,
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"CommittingUser": {
"LoginSource": 2,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"ID": 3,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"NumStars": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"MustChangePassword": false,
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"MaxRepoCreation": -1,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Language": "en-US",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Visibility": 1,
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"IsRestricted": false,
"NumFollowers": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumTeams": 0,
"LoginSource": 0,
"Language": "en-US",
"AllowImportLocal": false,
"NumRepos": 0,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"IsActive": true,
"UseCustomAvatar": true,
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Type": 0,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"NumStars": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Description": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
44,
36,
244,
247,
15,
230,
228,
80,
118,
192,
178,
54,
211,
95,
216,
123,
118,
238,
0,
251
]
}
},
"ID": [
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update dependency requests to v2.32.5 (#363)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | `==2.32.4` -> `==2.32.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/requests (requests)</summary>\n\n### [`v2.32.5`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2325-2025-08-18)\n\n[Compare Source](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)\n\n**Bugfixes**\n\n- The SSLContext caching feature originally introduced in 2.32.0 has created\n a new class of issues in Requests that have had negative impact across a number\n of use cases. The Requests team has decided to revert this feature as long term\n maintenance of it is proving to be unsustainable in its current iteration.\n\n**Deprecations**\n\n- Added support for Python 3.14.\n- Dropped support for Python 3.8 following its end of support.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43Ni4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/363\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
]
]
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"ID": 41041,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"CreatedUnix": 1755421336,
"UpdatedUnix": 1755421336,
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/0",
"Description": "Successful in 54s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"Description": "Successful in 11s",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1755421376,
"UpdatedUnix": 1755421376,
"ID": 41053,
"Index": 19,
"RepoID": 25
},
{
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/2",
"Description": "Successful in 10s",
"Context": "Release / Get Release ID (push)",
"UpdatedUnix": 1755421409,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755421409,
"ID": 41057,
"Index": 20,
"RepoID": 25,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8"
},
{
"Repo": "[*repo.Repository]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"CreatedUnix": 1755421729,
"UpdatedUnix": 1755421729,
"Index": 21,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/4",
"Description": "Successful in 5m59s",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 41064
},
{
"ID": 41065,
"Index": 22,
"State": "success",
"CreatorID": -2,
"CreatedUnix": 1755421734,
"UpdatedUnix": 1755421734,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/3",
"Description": "Successful in 1m12s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1755562244,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1755562244,
"ID": 41250,
"Index": 26,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"Description": "Successful in 9m31s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"Theme": "tangerine-dream",
"Language": "en-US",
"LowerName": "luke",
"MustChangePassword": false,
"Type": 0,
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginType": 6,
"LoginSource": 2,
"Email": "luke@tainton.uk",
"Salt": "",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"PasswdHashAlgo": "",
"Location": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Visibility": 1,
"IsAdmin": true,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"NumFollowers": 0,
"NumFollowing": 1
},
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"ProhibitLogin": false,
"Visibility": 0,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"KeepEmailPrivate": true,
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"IsActive": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"LoginName": "",
"Type": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
181,
248,
58,
41,
23,
84,
159,
79,
138,
197,
166,
162,
191,
225,
128,
125,
199,
230,
238,
28
],
"ResolvedID": null
}
},
"ID": [
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#360)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/360\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
]
}
}
}
},
{
"Status": {
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Creator": "[*user.User]",
"ID": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Creator": "[*user.User]",
"Index": 2,
"State": "success",
"Description": "Successful in 1m23s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1755028036,
"UpdatedUnix": 1755028036,
"ID": 39583,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumRepos": 3,
"NumMembers": 0,
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"NumFollowing": 1,
"IsAdmin": true,
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"Email": "luke@tainton.uk",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 1,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"Visibility": 1,
"MaxRepoCreation": -1,
"Name": "luke",
"Passwd": "",
"MustChangePassword": false,
"Location": "",
"Language": "en-US",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"PasswdHashAlgo": "",
"Type": 0,
"NumTeams": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"ProhibitLogin": false,
"NumRepos": 0,
"NumMembers": 0,
"Type": 0,
"IsAdmin": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"IsRestricted": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"LoginName": "",
"LastLoginUnix": 1768857135,
"NumStars": 0,
"LowerName": "renovate-bot",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"LastRepoVisibility": false,
"NumFollowing": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": ""
},
"Commit": {
"Parents": [
[
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
113,
206,
7,
148,
192,
103,
36,
23,
14,
217,
108,
83,
99,
166,
81,
142,
241,
25,
215
],
"ResolvedID": null
}
},
"ID": [
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#359)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/359\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "606db5050913568178b87b211f2027d063781449"
},
"Statuses": [
{
"ID": 39575,
"Index": 2,
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755027818,
"UpdatedUnix": 1755027818,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "606db5050913568178b87b211f2027d063781449",
"Description": "Successful in 1m21s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"Location": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Salt": "",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"LoginSource": 2,
"PasswdHashAlgo": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"NumFollowing": 1,
"NumRepos": 3,
"LowerName": "luke",
"Name": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Description": "",
"MaxRepoCreation": -1,
"IsActive": true,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Type": 0,
"ID": 3,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"MustChangePassword": false,
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumTeams": 0,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Language": "en-US",
"NumFollowing": 0,
"NumStars": 0,
"Theme": "gitea-auto",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"LoginName": "",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"FullName": "renovate[bot]",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"ID": 5,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"AllowImportLocal": false,
"KeepEmailPrivate": true
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
252,
35,
3,
134,
242,
176,
9,
40,
217,
43,
206,
2,
102,
196,
245,
51,
192,
219,
1,
194
],
"ResolvedID": null
}
},
"ID": [
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency wrapt to v1.17.3 (#362)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) ([changelog](https://wrapt.readthedocs.io/en/latest/changes.html)) | `==1.17.2` -> `==1.17.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>GrahamDumpleton/wrapt (wrapt)</summary>\n\n### [`v1.17.3`](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n[Compare Source](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/362\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 25,
"State": "success",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 39105,
"Index": 6,
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/0",
"Description": "Successful in 29s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"UpdatedUnix": 1754816460,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754816460
},
{
"ID": 39118,
"RepoID": 25,
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/1",
"Description": "Successful in 8s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"Index": 11,
"Repo": "[*repo.Repository]",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754816505,
"UpdatedUnix": 1754816505
},
{
"Index": 12,
"RepoID": 25,
"State": "success",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1754816534,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/2",
"Description": "Successful in 8s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1754816534,
"ID": 39123
},
{
"State": "success",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1754816773,
"ID": 39131,
"Index": 13,
"RepoID": 25,
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/4",
"Description": "Successful in 4m29s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1754816773,
"Repo": "[*repo.Repository]"
},
{
"Context": "Release / Build Wheel File (push)",
"CreatedUnix": 1754816788,
"UpdatedUnix": 1754816788,
"Index": 14,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 39132,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"Description": "Successful in 1m3s"
},
{
"Index": 18,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"Description": "Successful in 8m31s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1754957350,
"ID": 39389,
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754957350
}
],
"SignCommit": {
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsActive": true,
"IsRestricted": false,
"LoginName": "",
"Name": "renovate-bot",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 0,
"DiffViewStyle": "",
"Location": "",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"ID": 5,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"LoginSource": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Theme": "gitea-auto",
"Type": 0,
"FullName": "renovate[bot]",
"Language": "en-US"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency charset-normalizer to v3.4.3 (#358)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) ([changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)) | `==3.4.2` -> `==3.4.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>jawah/charset_normalizer (charset-normalizer)</summary>\n\n### [`v3.4.3`](https://github.com/jawah/charset_normalizer/blob/HEAD/CHANGELOG.md#343-2025-08-09)\n\n[Compare Source](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3)\n\n##### Changed\n\n- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. ([#​595](https://github.com/jawah/charset_normalizer/issues/595)) ([#​583](https://github.com/jawah/charset_normalizer/issues/583))\n- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. ([#​391](https://github.com/jawah/charset_normalizer/issues/391))\n\n##### Added\n\n- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\n- Support for Python 3.14\n\n##### Fixed\n\n- sdist archive contained useless directories.\n- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. ([#​633](https://github.com/jawah/charset_normalizer/issues/633))\n\n##### Misc\n\n- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\n Each published wheel comes with its SBOM. We choose CycloneDX as the format.\n- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC4yIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/358\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
38,
234,
111,
189,
233,
242,
117,
101,
31,
155,
75,
4,
216,
224,
48,
242,
198,
171,
210
],
"ResolvedID": null
}
},
"ID": [
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
},
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"Passwd": "",
"Description": "",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"NumFollowers": 0,
"NumStars": 1,
"NumMembers": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"Language": "en-US",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"IsAdmin": true,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"IsActive": true,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginType": 6,
"AllowImportLocal": false,
"NumFollowing": 1,
"Name": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"LastLoginUnix": 1776964991,
"ID": 3,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningEmail": "",
"TrustStatus": ""
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"IsActive": true,
"ID": 3,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"KeepEmailPrivate": false,
"Location": "",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Name": "luke",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginType": 6,
"Salt": "",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumStars": 1,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"LoginName": "luke@tainton.uk",
"Description": "",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Visibility": 1,
"DiffViewStyle": "unified"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"ID": 5,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"Description": "",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginSource": 0,
"Type": 0,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": ""
},
"Commit": {
"ID": [
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#357)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/357\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
]
],
"Tree": {
"TreeCommon": {
"ID": [
191,
248,
238,
5,
150,
100,
198,
234,
222,
114,
114,
201,
159,
35,
106,
112,
135,
152,
194,
184
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"ID": 0,
"Repo": "[*repo.Repository]",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"RepoID": 25,
"Description": "Successful in 4m58s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1754697938,
"ID": 38929,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1754697938,
"Index": 4
}
]
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 6m59s",
"CreatedUnix": 1754611653,
"UpdatedUnix": 1754611653,
"Index": 12,
"RepoID": 25,
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 38810
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Email": "luke@tainton.uk",
"LoginSource": 2,
"AllowGitHook": false,
"NumRepos": 3,
"NumMembers": 0,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"IsActive": true,
"Type": 0,
"ID": 3,
"Passwd": "",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"Visibility": 1,
"KeepActivityPrivate": false,
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumTeams": 0,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumStars": 1,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"LowerName": "luke",
"Name": "luke",
"MustChangePassword": false,
"Salt": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"Location": "",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Theme": "tangerine-dream"
}
},
"UserCommit": {
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.8.3 (#356)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.7.14` -> `==2025.8.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.8.3`](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/356\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
255,
121,
156,
108,
235,
30,
68,
112,
87,
74,
175,
22,
214,
255,
28,
149,
116,
235,
168
],
"ResolvedID": null
}
},
"ID": [
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
]
},
"User": {
"Description": "",
"UpdatedUnix": 1768857135,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"IsAdmin": false,
"ProhibitLogin": false,
"Visibility": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"Language": "en-US",
"NumFollowing": 0,
"ID": 5,
"LoginName": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"LoginType": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"Location": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"DiffViewStyle": "",
"KeepActivityPrivate": false
}
}
}
}
],
"DiffBlobExcerptData": {
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"BaseLink": "/repos/pypilot/blob_excerpt",
"IsWikiRepo": false,
"PullIssueIndex": 0,
"DiffStyle": "unified"
},
"IsCsvFile": "[func(*gitdiff.DiffFile) bool]",
"CanWriteActions": false,
"GetSniffedTypeForBlob": "[func(*git.Blob) typesniffer.SniffedType]",
"Branches": [
"main"
],
"DiffNotAvailable": false,
"TemplateName": "repo/diff/compare",
"IsPull": true,
"Repository": {
"NumForks": 0,
"NumClosedActionRuns": 984,
"NumOpenActionRuns": 0,
"Status": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"LowerName": "pypilot",
"Description": "",
"NumClosedIssues": 1,
"NumProjects": 0,
"IsEmpty": false,
"IsFork": false,
"Size": 2465934,
"GitSize": 2465934,
"OwnerName": "repos",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumClosedProjects": 0,
"NumOpenProjects": 0,
"IsPrivate": false,
"CreatedUnix": 1737063265,
"DefaultBranch": "main",
"NumStars": 0,
"NumClosedPulls": 436,
"NumOpenMilestones": 0,
"ForkID": 0,
"BaseRepo": "[*repo.Repository]",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"UpdatedUnix": 1776589233,
"ID": 25,
"NumPulls": 436,
"NumActionRuns": 984,
"IsMirror": false,
"IsTemplate": false,
"TemplateID": 0,
"Topics": null,
"ArchivedUnix": 0,
"OwnerID": 13,
"DefaultWikiBranch": "main",
"NumOpenPulls": 0,
"ObjectFormatName": "sha1",
"TrustModel": 0,
"Name": "pypilot",
"NumMilestones": 0,
"IsArchived": false,
"Units": [
{
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25,
"Type": 2
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {}
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"IgnoreWhitespaceConflicts": false,
"AllowSquash": true,
"AllowManualMerge": false,
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowFastForwardOnly": false,
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash"
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
}
],
"LFSSize": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"IsFsckEnabled": true,
"Avatar": "",
"Website": "",
"NumIssues": 2,
"NumOpenIssues": 1,
"NumClosedMilestones": 0,
"CloseIssuesViaCommitInAnyBranch": true,
"Owner": {
"IsAdmin": false,
"FullName": "",
"EmailNotificationsPreference": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumStars": 0,
"Email": "",
"LoginSource": 0,
"LoginName": "",
"Language": "",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"UseCustomAvatar": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 6,
"Theme": "tangerine-dream",
"LoginType": 0,
"IsRestricted": false,
"ID": 13,
"LowerName": "repos",
"Passwd": "",
"Description": "",
"AllowCreateOrganization": false,
"AvatarEmail": "",
"Name": "repos",
"MustChangePassword": false,
"Location": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"UpdatedUnix": 1776538024,
"NumFollowing": 0,
"NumRepos": 27,
"Visibility": 0,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"NumFollowers": 0,
"NumMembers": 7,
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"Type": 1,
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"KeepActivityPrivate": false
},
"OriginalServiceType": 2,
"NumWatches": 5
},
"CanWriteIssues": false,
"CodeIndexerUnavailable": false,
"CloneButtonShowHTTPS": true,
"BaseName": "repos",
"Permission": {
"AccessMode": 1
},
"AllLangs": [
{
"Lang": "id-ID",
"Name": "Bahasa Indonesia"
},
{
"Lang": "de-DE",
"Name": "Deutsch"
},
{
"Lang": "en-US",
"Name": "English"
},
{
"Lang": "es-ES",
"Name": "Español"
},
{
"Lang": "fr-FR",
"Name": "Français"
},
{
"Lang": "ga-IE",
"Name": "Gaeilge"
},
{
"Lang": "it-IT",
"Name": "Italiano"
},
{
"Lang": "lv-LV",
"Name": "Latviešu"
},
{
"Lang": "hu-HU",
"Name": "Magyar nyelv"
},
{
"Lang": "nl-NL",
"Name": "Nederlands"
},
{
"Lang": "pl-PL",
"Name": "Polski"
},
{
"Lang": "pt-PT",
"Name": "Português de Portugal"
},
{
"Name": "Português do Brasil",
"Lang": "pt-BR"
},
{
"Lang": "fi-FI",
"Name": "Suomi"
},
{
"Lang": "sv-SE",
"Name": "Svenska"
},
{
"Lang": "tr-TR",
"Name": "Türkçe"
},
{
"Lang": "cs-CZ",
"Name": "Čeština"
},
{
"Name": "Ελληνικά",
"Lang": "el-GR"
},
{
"Name": "Български",
"Lang": "bg-BG"
},
{
"Lang": "ru-RU",
"Name": "Русский"
},
{
"Lang": "uk-UA",
"Name": "Українська"
},
{
"Name": "فارسی",
"Lang": "fa-IR"
},
{
"Name": "മലയാളം",
"Lang": "ml-IN"
},
{
"Lang": "ja-JP",
"Name": "日本語"
},
{
"Lang": "zh-CN",
"Name": "简体中文"
},
{
"Name": "繁體中文(台灣)",
"Lang": "zh-TW"
},
{
"Lang": "zh-HK",
"Name": "繁體中文(香港)"
},
{
"Lang": "ko-KR",
"Name": "한국어"
}
],
"CommitCount": 64,
"EnableSwagger": true,
"SystemConfig": {
"Picture": {
"EnableFederatedAvatar": {},
"DisableGravatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
},
"Instance": {
"MaintenanceMode": {},
"WebBanner": {}
}
},
"NumReleases": 40,
"IsSniffedTypeAnImage": "[func(typesniffer.SniffedType) bool]",
"HeadUser": {
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowers": 0,
"NumTeams": 6,
"Email": "",
"UseCustomAvatar": true,
"NumStars": 0,
"Name": "repos",
"Type": 1,
"Website": "",
"IsAdmin": false,
"LowerName": "repos",
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsRestricted": false,
"ProhibitLogin": false,
"ID": 13,
"LoginType": 0,
"Location": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Description": "",
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"FullName": "",
"PasswdHashAlgo": "",
"LoginSource": 0,
"LoginName": "",
"UpdatedUnix": 1776538024,
"NumRepos": 27,
"NumMembers": 7,
"DiffViewStyle": "",
"KeepEmailPrivate": false,
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"Visibility": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"AvatarEmail": "",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": true,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "",
"MustChangePassword": false,
"Language": ""
},
"DiffShortStat": {
"NumFiles": 8,
"TotalAddition": 328,
"TotalDeletion": 455
},
"HeadRepo": {
"IsPrivate": false,
"Status": 0,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"Owner": {
"IsActive": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 27,
"DiffViewStyle": "",
"ID": 13,
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsRestricted": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"Email": "",
"LoginSource": 0,
"Type": 1,
"Description": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"AvatarEmail": "",
"Visibility": 0,
"Name": "repos",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "",
"Passwd": "",
"AllowGitHook": false,
"FullName": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"UpdatedUnix": 1776538024,
"NumTeams": 6,
"LoginType": 0,
"AllowImportLocal": false,
"NumMembers": 7,
"Language": "",
"CreatedUnix": 1739049474,
"LastLoginUnix": 0,
"NumFollowing": 0,
"NumStars": 0,
"Theme": "tangerine-dream",
"LoginName": "",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"Website": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"LowerName": "repos"
},
"LowerName": "pypilot",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"UpdatedUnix": 1776589233,
"ArchivedUnix": 0,
"OwnerName": "repos",
"Description": "",
"NumStars": 0,
"NumForks": 0,
"NumIssues": 2,
"GitSize": 2465934,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"DefaultWikiBranch": "main",
"NumClosedMilestones": 0,
"NumOpenActionRuns": 0,
"IsTemplate": false,
"Size": 2465934,
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"OriginalServiceType": 2,
"NumMilestones": 0,
"NumActionRuns": 984,
"PrimaryLanguage": "[*repo.LanguageStat]",
"CreatedUnix": 1737063265,
"ID": 25,
"OwnerID": 13,
"Name": "pypilot",
"Website": "",
"NumOpenIssues": 1,
"NumClosedActionRuns": 984,
"IsArchived": false,
"BaseRepo": "[*repo.Repository]",
"NumPulls": 436,
"NumOpenPulls": 0,
"NumClosedProjects": 0,
"IsEmpty": false,
"IsMirror": false,
"Units": [
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852,
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704
},
{
"Type": 2,
"Config": {
"EnableDependencies": true,
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {}
},
{
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704
},
{
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"RepoID": 25,
"Type": 3,
"Config": {
"AutodetectManualMerge": true,
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowMerge": false,
"AllowRebaseMerge": false,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"AllowRebase": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1857
}
],
"IsFork": false,
"TemplateID": 0,
"NumOpenMilestones": 0,
"NumProjects": 0,
"ForkID": 0,
"LFSSize": 0,
"Topics": null,
"ObjectFormatName": "sha1",
"TrustModel": 0,
"Avatar": "",
"DefaultBranch": "main",
"NumWatches": 5,
"NumClosedIssues": 1,
"NumClosedPulls": 436,
"NumOpenProjects": 0
},
"ViteModeIsDev": false,
"BeforeSourcePath": "/repos/pypilot/src/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"AllowMaintainerEdit": true,
"BaseBranch": "v1.8.9",
"TitleQuery": "",
"BeforeCommit": {
"Tree": {
"TreeCommon": {
"ID": [
107,
168,
48,
8,
163,
113,
115,
94,
127,
249,
241,
17,
227,
64,
35,
96,
244,
130,
104,
226
],
"ResolvedID": null
}
},
"ID": [
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency click to v8.2.2 (#355)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.1` -> `==8.2.2` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.2.2`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-822)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.1...8.2.2)\n\nUnreleased\n\n- Fix reconciliation of `default`, `flag_value` and `type` parameters for\n flag options, as well as parsing and normalization of environment variables.\n :issue:`2952` :pr:`2956`\n- Fix typing issue in `BadParameter` and `MissingParameter` exceptions for the\n parameter `param_hint` that did not allow for a sequence of string where the\n underlying functino `_join_param_hints` allows for it. :issue:`2777` :pr:`2990`\n- Use the value of `Enum` choices to render their default value in help\n screen. Refs :issue:`2911` :pr:`3004`\n- Fix completion for the Z shell (`zsh`) for completion items containing\n colons. :issue:`2703` :pr:`2846`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/355\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
233,
137,
34,
201,
152,
52,
239,
155,
100,
232,
174,
88,
158,
242,
20,
224,
61,
187,
121,
10
]
]
},
"PageData": {
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>",
"DiffFileTree": {
"TreeRoot": {
"FullName": "",
"DisplayName": "",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": [
{
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a"
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"FullName": ".gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/conventional-commit.yml",
"DisplayName": "conventional-commit.yml",
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"DiffStatus": "modified",
"EntryMode": ""
},
{
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc"
}
],
"FileIcon": ""
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml",
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified"
},
{
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json"
},
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified"
}
],
"FileIcon": ""
}
}
},
"RepoLink": "/repos/pypilot",
"CommitRepoLink": "/repos/pypilot",
"DisableDownloadSourceArchives": false,
"HeadCommit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
],
"Tree": {
"TreeCommon": {
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
],
"ResolvedID": null
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n"
}
}
},
"Render": {},
"Doer": "[*user.User]",
"Org": {
"IsMember": false,
"CanCreateOrgRepo": false,
"Teams": null,
"IsOwner": false,
"IsTeamMember": false,
"IsTeamAdmin": false,
"Organization": "[*organization.Organization]",
"OrgLink": "",
"Team": "[*organization.Team]"
},
"Package": "[*context.Package]",
"PageData": {
"FolderIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1z\"/></svg>",
"FolderOpenIcon": "<svg viewBox=\"0 0 16 16\" class=\"svg octicon-file-directory-open-fill\" aria-hidden=\"true\" width=\"16\" height=\"16\"><path d=\"M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H13a1 1 0 0 1 1 1v.5H2.75a.75.75 0 0 0 0 1.5h11.978a1 1 0 0 1 .994 1.117L15 13.25A1.75 1.75 0 0 1 13.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237\"/></svg>",
"DiffFileTree": {
"TreeRoot": {
"NameHash": "",
"DiffStatus": "",
"EntryMode": "",
"IsViewed": false,
"Children": [
{
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false,
"Children": [
{
"Children": [
{
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows-disabled/security.yml",
"DisplayName": "security.yml",
"NameHash": "22fd01e1e2d7c3a4918bfa8c1153e3584ffcbf8a",
"DiffStatus": "renamed",
"EntryMode": "",
"IsViewed": false
}
],
"FileIcon": "",
"FullName": ".gitea/workflows-disabled",
"DisplayName": "workflows-disabled",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree",
"IsViewed": false
},
{
"IsViewed": false,
"Children": [
{
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/ci.yml",
"DisplayName": "ci.yml",
"NameHash": "f1b23d4eeeda070b6fac9284f4bae7398f7cfcd9",
"DiffStatus": "modified"
},
{
"DisplayName": "conventional-commit.yml",
"NameHash": "94a116d72f110a637108fabdc66b79fff8eda84a",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/conventional-commit.yml"
},
{
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-yaml\"></use></svg>",
"FullName": ".gitea/workflows/release.yml",
"DisplayName": "release.yml",
"NameHash": "c2d43a7c554bbc75452ad8b895f48d5594a553cc",
"DiffStatus": "modified",
"EntryMode": ""
}
],
"FileIcon": "",
"FullName": ".gitea/workflows",
"DisplayName": "workflows",
"NameHash": "",
"DiffStatus": "",
"EntryMode": "tree"
}
],
"FileIcon": "",
"FullName": ".gitea",
"DisplayName": ".gitea",
"NameHash": ""
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-docker\"></use></svg>",
"FullName": "Dockerfile",
"DisplayName": "Dockerfile",
"NameHash": "6651ddff6eb82c840ced7c1dddee15c6e1913dd4",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"NameHash": "5d07e7d72637aa0d59c89d381fe6dc4cf46e2491",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null,
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-python-misc\"></use></svg>",
"FullName": "pyproject.toml",
"DisplayName": "pyproject.toml"
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-renovate\"></use></svg>",
"FullName": "renovate.json",
"DisplayName": "renovate.json",
"NameHash": "dc6f0bbca55a3ed08e5a507be2cc18dcdc034386",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
},
{
"FileIcon": "<svg class=\"svg git-entry-icon octicon-file\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use href=\"#svg-mfi-uv\"></use></svg>",
"FullName": "uv.lock",
"DisplayName": "uv.lock",
"NameHash": "8356d81e4534d6870d4e03761c963b3e292cdb5e",
"DiffStatus": "modified",
"EntryMode": "",
"IsViewed": false,
"Children": null
}
],
"FileIcon": "",
"FullName": "",
"DisplayName": ""
}
}
},
"ContextUser": {
"LoginName": "",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"CreatedUnix": 1739049474,
"NumRepos": 27,
"Visibility": 0,
"Theme": "tangerine-dream",
"LowerName": "repos",
"IsActive": true,
"DiffViewStyle": "",
"IsAdmin": false,
"Name": "repos",
"Passwd": "",
"Location": "",
"UpdatedUnix": 1776538024,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"ProhibitLogin": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"KeepActivityPrivate": false,
"LoginSource": 0,
"ID": 13,
"LoginType": 0,
"Website": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowing": 0,
"FullName": "",
"Type": 1,
"Description": "",
"EmailNotificationsPreference": "",
"MustChangePassword": false,
"LastLoginUnix": 0,
"MaxRepoCreation": -1,
"AvatarEmail": "",
"NumTeams": 6,
"NumMembers": 7,
"Email": "",
"Language": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowers": 0
},
"Repo": {
"RepoLink": "/repos/pypilot",
"GitRepo": "[dumped]",
"BranchName": "",
"Commit": "[*git.Commit]",
"CommitID": "",
"CommitsCount": 0,
"Permission": {
"AccessMode": 1
},
"Owner": {
"LowerName": "repos",
"KeepEmailPrivate": false,
"Location": "",
"AvatarEmail": "",
"PasswdHashAlgo": "",
"LoginSource": 0,
"Type": 1,
"Description": "",
"LastLoginUnix": 0,
"NumTeams": 6,
"MustChangePassword": false,
"Website": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"MaxRepoCreation": -1,
"NumFollowers": 0,
"NumRepos": 27,
"NumMembers": 7,
"Visibility": 0,
"EmailNotificationsPreference": "",
"NumFollowing": 0,
"KeepActivityPrivate": false,
"Name": "repos",
"LoginType": 0,
"CreatedUnix": 1739049474,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": true,
"DiffViewStyle": "",
"ID": 13,
"FullName": "",
"LoginName": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"Email": "",
"Passwd": "",
"UpdatedUnix": 1776538024,
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"Language": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumStars": 0
},
"RefFullName": "",
"TreePath": "",
"PullRequestCtx": {},
"Repository": {
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"ID": 25,
"NumForks": 0,
"NumOpenIssues": 1,
"NumOpenPulls": 0,
"NumMilestones": 0,
"IsArchived": false,
"BaseRepo": "[*repo.Repository]",
"Topics": null,
"OwnerName": "repos",
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"NumOpenProjects": 0,
"IsMirror": false,
"PrimaryLanguage": "[*repo.LanguageStat]",
"TemplateID": 0,
"LFSSize": 0,
"UpdatedUnix": 1776589233,
"Owner": {
"RepoAdminChangeTeamAccess": true,
"KeepEmailPrivate": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"KeepActivityPrivate": false,
"Website": "",
"AllowImportLocal": false,
"NumFollowing": 0,
"NumTeams": 6,
"IsActive": true,
"ID": 13,
"LowerName": "repos",
"Name": "repos",
"FullName": "",
"Passwd": "",
"MustChangePassword": false,
"Location": "",
"Email": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"AvatarEmail": "",
"NumStars": 0,
"NumMembers": 7,
"Theme": "tangerine-dream",
"LoginName": "",
"CreatedUnix": 1739049474,
"AllowGitHook": false,
"NumRepos": 27,
"DiffViewStyle": "",
"PasswdHashAlgo": "",
"LastLoginUnix": 0,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"Description": "",
"UpdatedUnix": 1776538024,
"IsRestricted": false,
"EmailNotificationsPreference": "",
"UseCustomAvatar": true,
"Visibility": 0,
"LoginType": 0,
"LoginSource": 0,
"Type": 1,
"IsAdmin": false
},
"NumClosedPulls": 436,
"NumClosedActionRuns": 984,
"NumOpenActionRuns": 0,
"IsPrivate": false,
"IsEmpty": false,
"ForkID": 0,
"Size": 2465934,
"OriginalServiceType": 2,
"DefaultWikiBranch": "main",
"NumClosedProjects": 0,
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"Avatar": "",
"ArchivedUnix": 0,
"OwnerID": 13,
"Name": "pypilot",
"NumIssues": 2,
"NumPulls": 436,
"NumProjects": 0,
"NumActionRuns": 984,
"Units": [
{
"RepoID": 25,
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852
},
{
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25
},
{
"ID": 1854,
"RepoID": 25,
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null,
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]"
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"AllowMerge": false,
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowManualMerge": false,
"AllowRebaseUpdate": true,
"IgnoreWhitespaceConflicts": false,
"AllowRebase": false,
"AllowFastForwardOnly": false,
"AutodetectManualMerge": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
}
],
"IsTemplate": false,
"Description": "",
"Website": "",
"Status": 0,
"IsFork": false,
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"TrustModel": 0,
"LowerName": "pypilot",
"NumWatches": 5,
"NumClosedIssues": 1,
"CreatedUnix": 1737063265,
"DefaultBranch": "main",
"NumStars": 0,
"NumClosedMilestones": 0,
"NumOpenMilestones": 0
}
}
}
},
"HeadRef": "737c4edf2b7314bcc124daaa3076db8e69b4b81c"
},
"DiffBlobExcerptData": {
"DiffStyle": "unified",
"AfterCommitID": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"BaseLink": "/repos/pypilot/blob_excerpt",
"IsWikiRepo": false,
"PullIssueIndex": 0
},
"Link": "/repos/pypilot/compare/v1.8.9..737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"GetBlobByPathForCommit": "[func(*git.Commit, string) *git.Blob]",
"IsProjectsEnabled": false,
"NumTags": 42,
"BranchesCount": 1,
"IsPull": true,
"CommitRepoLink": "/repos/pypilot",
"CloneButtonOriginLink": {
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git",
"Tea": "tea clone repos/pypilot"
},
"CanWriteIssues": false,
"CanWritePulls": false,
"BeforeCommitID": "527e588a24fba8d0bbb0c9f23f4998bd889b90b6",
"title": "fix(deps): update dependency certifi to v2025.8.3 (#356)",
"BeforeSourcePath": "/repos/pypilot/src/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"CanWriteCode": false,
"content": "",
"DiffNotAvailable": false,
"CloneButtonShowHTTPS": true,
"PageTitleCommon": "pypilot - Gitea",
"NumReleases": 40,
"Owner": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "",
"LoginName": "",
"Location": "",
"Website": "",
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"AllowCreateOrganization": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"NumFollowers": 0,
"KeepEmailPrivate": false,
"Passwd": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsRestricted": false,
"NumStars": 0,
"NumMembers": 7,
"Email": "",
"Language": "",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumRepos": 27,
"DiffViewStyle": "",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "repos",
"Description": "",
"PasswdHashAlgo": "",
"LoginType": 0,
"IsAdmin": false,
"NumFollowing": 0,
"Visibility": 0,
"Type": 1,
"FullName": "",
"EmailNotificationsPreference": "",
"ProhibitLogin": false,
"NumTeams": 6,
"Salt": "b7ae788249c01a123b005da3b594e807",
"LastLoginUnix": 0,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": true,
"LoginSource": 0,
"ID": 13,
"LowerName": "repos",
"MustChangePassword": false
},
"CanWriteActions": false,
"RepoCloneLink": {
"Tea": "tea clone repos/pypilot",
"SSH": "ssh://git@git.tainton.uk:2222/repos/pypilot.git",
"HTTPS": "https://git.tainton.uk/repos/pypilot.git"
},
"IsAttachmentEnabled": true,
"DisableStars": false,
"HeadUser": {
"Salt": "b7ae788249c01a123b005da3b594e807",
"Description": "",
"NumFollowing": 0,
"NumRepos": 27,
"Name": "repos",
"Email": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumTeams": 6,
"MustChangePassword": false,
"LoginSource": 0,
"CreatedUnix": 1739049474,
"LastRepoVisibility": false,
"AvatarEmail": "",
"NumMembers": 7,
"Visibility": 0,
"RepoAdminChangeTeamAccess": true,
"EmailNotificationsPreference": "",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "repos",
"Passwd": "",
"LastLoginUnix": 0,
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Type": 1,
"Website": "",
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 0,
"ID": 13,
"IsRestricted": false,
"DiffViewStyle": "",
"LoginType": 0,
"LoginName": "",
"Rands": "332424116cb6639ebeac861f16b8e571",
"Language": "",
"UpdatedUnix": 1776538024,
"IsAdmin": false,
"AllowImportLocal": false,
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"FullName": "",
"PasswdHashAlgo": "",
"Location": ""
},
"ExpandNewPrForm": false,
"IsLandingPageOrganizations": false,
"RawPath": "/repos/pypilot/raw/commit/737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"UploadAccepts": ".avif,.cpuprofile,.csv,.dmp,.docx,.fodg,.fodp,.fods,.fodt,.gif,.gz,.jpeg,.jpg,.json,.jsonc,.log,.md,.mov,.mp4,.odf,.odg,.odp,.ods,.odt,.patch,.pdf,.png,.pptx,.svg,.tgz,.txt,.webm,.webp,.xls,.xlsx,.zip",
"TemplateName": "repo/diff/compare",
"ShowForkModal": false,
"RepoSearchEnabled": true,
"UploadRemoveUrl": "/repos/pypilot/issues/attachments/remove",
"CanSignedUserFork": false,
"BeforeRawPath": "/repos/pypilot/raw/commit/4cf847e7093d40016dc6dc93096e61886da21bac",
"SystemConfig": {
"Picture": {
"DisableGravatar": {},
"EnableFederatedAvatar": {}
},
"Repository": {
"OpenWithEditorApps": {},
"GitGuideRemoteName": {}
},
"Instance": {
"WebBanner": {},
"MaintenanceMode": {}
}
},
"PageIsComparePull": false,
"RepoLink": "/repos/pypilot",
"BaseRepo": {
"ArchivedUnix": 0,
"ID": 25,
"LowerName": "pypilot",
"Description": "",
"Website": "",
"OriginalServiceType": 2,
"NumForks": 0,
"NumClosedActionRuns": 984,
"IsPrivate": false,
"DefaultWikiBranch": "main",
"NumPulls": 436,
"NumClosedMilestones": 0,
"NumProjects": 0,
"IsEmpty": false,
"OwnerID": 13,
"NumMilestones": 0,
"NumActionRuns": 984,
"IsMirror": false,
"IsFork": false,
"TemplateID": 0,
"Size": 2465934,
"Topics": null,
"NumStars": 0,
"NumOpenIssues": 1,
"NumOpenMilestones": 0,
"Units": [
{
"Type": 1,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1852,
"RepoID": 25
},
{
"Type": 2,
"Config": {
"EnableTimetracker": false,
"AllowOnlyContributorsToTrackTime": true,
"EnableDependencies": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1853,
"RepoID": 25
},
{
"Type": 4,
"Config": {},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1854,
"RepoID": 25
},
{
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0,
"ID": 1855,
"RepoID": 25,
"Type": 9,
"Config": {}
},
{
"ID": 1856,
"RepoID": 25,
"Type": 10,
"Config": {
"TokenPermissionMode": "permissive",
"MaxTokenPermissions": "[*repo.ActionsTokenPermissions]",
"OverrideOwnerConfig": false,
"DisabledWorkflows": null,
"CollaborativeOwnerIDs": null
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0,
"EveryoneAccessMode": 0
},
{
"EveryoneAccessMode": 0,
"ID": 1857,
"RepoID": 25,
"Type": 3,
"Config": {
"AllowRebaseUpdate": true,
"DefaultDeleteBranchAfterMerge": true,
"DefaultMergeStyle": "squash",
"DefaultAllowMaintainerEdit": true,
"DefaultTargetBranch": "",
"IgnoreWhitespaceConflicts": false,
"AllowRebase": false,
"AllowRebaseMerge": false,
"AllowSquash": true,
"AllowFastForwardOnly": false,
"AllowManualMerge": false,
"AllowMerge": false,
"AutodetectManualMerge": true
},
"CreatedUnix": 1767617704,
"AnonymousAccessMode": 0
}
],
"IsFsckEnabled": true,
"CloseIssuesViaCommitInAnyBranch": true,
"OriginalURL": "https://github.com/luketainton/pypilot.git",
"DefaultBranch": "main",
"NumOpenActionRuns": 0,
"Status": 0,
"BaseRepo": "[*repo.Repository]",
"StatsIndexerStatus": "[*repo.RepoIndexerStatus]",
"UpdatedUnix": 1776589233,
"NumOpenPulls": 0,
"NumOpenProjects": 0,
"PrimaryLanguage": "[*repo.LanguageStat]",
"ForkID": 0,
"IsTemplate": false,
"GitSize": 2465934,
"CodeIndexerStatus": "[*repo.RepoIndexerStatus]",
"ObjectFormatName": "sha1",
"Owner": {
"Email": "",
"Salt": "b7ae788249c01a123b005da3b594e807",
"Language": "",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 0,
"RepoAdminChangeTeamAccess": true,
"IsActive": true,
"LoginName": "",
"EmailNotificationsPreference": "",
"UseCustomAvatar": true,
"NumTeams": 6,
"KeepActivityPrivate": false,
"Name": "repos",
"Type": 1,
"Website": "",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"LoginType": 0,
"CreatedUnix": 1739049474,
"UpdatedUnix": 1776538024,
"IsRestricted": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumRepos": 27,
"Rands": "332424116cb6639ebeac861f16b8e571",
"IsAdmin": false,
"NumMembers": 7,
"ID": 13,
"LowerName": "repos",
"MustChangePassword": false,
"LoginSource": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"FullName": "",
"Passwd": "",
"Avatar": "2d8aa378df605b1af9bfa07b4093b18408356319eaeb74e52aef9de1dcdf4d76",
"Visibility": 0,
"PasswdHashAlgo": "",
"Location": "",
"LastLoginUnix": 0,
"AvatarEmail": "",
"NumFollowing": 0,
"DiffViewStyle": ""
},
"Name": "pypilot",
"NumIssues": 2,
"NumClosedIssues": 1,
"IsArchived": false,
"TrustModel": 0,
"Avatar": "",
"CreatedUnix": 1737063265,
"OwnerName": "repos",
"NumWatches": 5,
"NumClosedPulls": 436,
"NumClosedProjects": 0,
"LFSSize": 0
},
"HeadBranches": [
"main"
],
"PageIsViewCode": true,
"IsSplitStyle": false,
"AllowMaintainerEdit": true,
"TitleQuery": "",
"IsDiffCompare": true,
"Commits": [
{
"Status": {
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"CreatedUnix": 1772827042,
"UpdatedUnix": 1772827042,
"ID": 90801,
"Index": 3,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c",
"TargetURL": "/repos/pypilot/actions/runs/918/jobs/0",
"ContextHash": "d7cc028fcbc1b9a3b7e7b420569d59c23f362ed4",
"Context": "Conventional Commit / Validate PR Title (pull_request)",
"RepoID": 25,
"Description": "Successful in 4s",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"TargetURL": "/repos/pypilot/actions/runs/917/jobs/0",
"Description": "Successful in 31s",
"ContextHash": "1d4318d1d773d4c5381bf44d970d3decad7be9a6",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 90804,
"Index": 4,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "CI / ci (pull_request)",
"CreatedUnix": 1772827063,
"UpdatedUnix": 1772827063,
"SHA": "737c4edf2b7314bcc124daaa3076db8e69b4b81c"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Theme": "tangerine-dream",
"MustChangePassword": false,
"Salt": "",
"IsActive": true,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"NumStars": 1,
"LowerName": "luke",
"Name": "luke",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"Visibility": 1,
"ID": 3,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"UseCustomAvatar": true,
"NumRepos": 3,
"NumTeams": 0,
"LoginType": 6,
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0
}
},
"UserCommit": {
"Commit": {
"CommitMessage": "chore(deps): update docker/metadata-action action to v6\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
33,
28,
58,
82,
69,
73,
103,
1,
156,
219,
48,
161,
71,
19,
255,
31,
120,
249,
177,
51
]
}
},
"ID": [
115,
124,
78,
223,
43,
115,
20,
188,
193,
36,
218,
170,
48,
118,
219,
142,
105,
180,
184,
28
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
},
"User": {
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowGitHook": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsRestricted": false,
"ID": 5,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Name": "renovate-bot",
"LoginSource": 0,
"Language": "en-US",
"Description": "",
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"NumTeams": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Location": "",
"Website": "https://renovatebot.com",
"Visibility": 0,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"NumFollowing": 0,
"NumStars": 0,
"Theme": "gitea-auto"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"MustChangePassword": false,
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumMembers": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"Type": 0,
"Location": "",
"ProhibitLogin": false,
"NumTeams": 0,
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 1,
"NumRepos": 3,
"Name": "luke",
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsAdmin": true,
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LastLoginUnix": 1768857135,
"NumFollowers": 0,
"MustChangePassword": false,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 5,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Website": "https://renovatebot.com",
"IsActive": true,
"IsAdmin": false,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"IsRestricted": false,
"NumRepos": 0,
"LoginSource": 0,
"Description": "",
"LastRepoVisibility": false,
"NumStars": 0,
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"UpdatedUnix": 1768857135
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
]
],
"Tree": {
"TreeCommon": {
"ID": [
207,
244,
90,
161,
133,
250,
223,
134,
6,
6,
110,
7,
71,
132,
82,
240,
9,
130,
62,
99
],
"ResolvedID": null
}
},
"ID": [
12,
133,
235,
92,
23,
165,
170,
179,
219,
69,
176,
31,
140,
109,
80,
39,
108,
19,
142,
125
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/build-push-action action to v7 (#420)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/build-push-action](https://github.com/docker/build-push-action) | action | major | `v6` → `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/build-push-action (docker/build-push-action)</summary>\n\n### [`v7`](https://github.com/docker/build-push-action/compare/v6...v7)\n\n[Compare Source](https://github.com/docker/build-push-action/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/420\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"LowerName": "luke",
"FullName": "Luke Tainton",
"Description": "",
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"AllowGitHook": false,
"Visibility": 1,
"NumStars": 1,
"Theme": "tangerine-dream",
"UpdatedUnix": 1776964991,
"Name": "luke",
"KeepEmailPrivate": false,
"Type": 0,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 3,
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"NumMembers": 0,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"IsAdmin": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"MustChangePassword": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsAdmin": false,
"AllowImportLocal": false,
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"DiffViewStyle": "",
"Name": "renovate-bot",
"LoginSource": 0,
"IsRestricted": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsActive": true,
"NumFollowing": 0,
"NumStars": 0,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginName": "",
"Description": "",
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Visibility": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Website": "https://renovatebot.com",
"NumTeams": 0
},
"Commit": {
"Parents": [
[
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
]
],
"Tree": {
"TreeCommon": {
"ID": [
203,
115,
71,
56,
137,
176,
180,
148,
171,
200,
154,
132,
74,
30,
231,
35,
104,
209,
110,
204
],
"ResolvedID": null
}
},
"ID": [
221,
176,
162,
141,
94,
2,
151,
38,
137,
205,
212,
162,
53,
18,
185,
139,
105,
118,
110,
70
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <26.3.1,>=26.3.0 (#421)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<26.1.1,>=26.1.0` → `<26.3.1,>=26.3.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.3.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2630)\n\n[Compare Source](https://github.com/psf/black/compare/26.1.0...26.3.0)\n\n##### Stable style\n\n- Don't double-decode input, causing non-UTF-8 files to be corrupted ([#​4964](https://github.com/psf/black/issues/4964))\n- Fix crash on standalone comment in lambda default arguments ([#​4993](https://github.com/psf/black/issues/4993))\n- Preserve parentheses when `# type: ignore` comments would be merged with other\n comments on the same line, preventing AST equivalence failures ([#​4888](https://github.com/psf/black/issues/4888))\n\n##### Preview style\n\n- Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had\n a trailing comma ([#​4884](https://github.com/psf/black/issues/4884))\n- Fix `string_processing` crashing on unassigned long string literals with trailing\n commas (one-item tuples) ([#​4929](https://github.com/psf/black/issues/4929))\n- Simplify implementation of the power operator \"hugging\" logic ([#​4918](https://github.com/psf/black/issues/4918))\n\n##### Packaging\n\n- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\n frozen environments ([#​4930](https://github.com/psf/black/issues/4930))\n\n##### Performance\n\n- Introduce winloop for windows as an alternative to uvloop ([#​4996](https://github.com/psf/black/issues/4996))\n- Remove deprecated function `uvloop.install()` in favor of `uvloop.new_event_loop()`\n ([#​4996](https://github.com/psf/black/issues/4996))\n- Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to simplify loop\n installation and creation of either a uvloop/winloop evenloop or default eventloop\n ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Output\n\n- Emit a clear warning when the target Python version is newer than the running Python\n version, since AST safety checks cannot parse newer syntax. Also replace the\n misleading \"INTERNAL ERROR\" message with an actionable error explaining the version\n mismatch ([#​4983](https://github.com/psf/black/issues/4983))\n\n##### *Blackd*\n\n- Introduce winloop to be used when windows in use which enables blackd to run faster on\n windows when winloop is installed. ([#​4996](https://github.com/psf/black/issues/4996))\n\n##### Integrations\n\n- Remove unused gallery script ([#​5030](https://github.com/psf/black/issues/5030))\n- Harden parsing of `black` requirements in the GitHub Action when `use_pyproject` is\n enabled so that only version specifiers are accepted and direct references such as\n `black @​ https://...` are rejected. Users should upgrade to the latest version of the\n action as soon as possible. This update is received automatically when using\n `psf/black@stable`, and is independent of the version of Black installed by the\n action. ([#​5031](https://github.com/psf/black/issues/5031))\n\n##### Documentation\n\n- Expand preview style documentation with detailed examples for `wrap_comprehension_in`,\n `simplify_power_operator_hugging`, and `wrap_long_dict_values_in_parens` features\n ([#​4987](https://github.com/psf/black/issues/4987))\n- Add detailed documentation for formatting Jupyter Notebooks ([#​5009](https://github.com/psf/black/issues/5009))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OC4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/421\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"IsRestricted": false,
"LoginSource": 2,
"Description": "",
"IsActive": true,
"NumTeams": 0,
"IsAdmin": true,
"ID": 3,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"LowerName": "luke",
"Passwd": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"Salt": "",
"Language": "en-US",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumStars": 1,
"NumRepos": 3,
"DiffViewStyle": "unified",
"Name": "luke",
"RepoAdminChangeTeamAccess": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"IsRestricted": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"EmailNotificationsPreference": "disabled",
"Description": "",
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumTeams": 0,
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"NumStars": 0,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"Visibility": 0,
"LoginSource": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastRepoVisibility": false,
"IsAdmin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"CreatedUnix": 1735676388,
"IsActive": true,
"Type": 0,
"ID": 5,
"KeepEmailPrivate": true,
"Location": "",
"AllowGitHook": false
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tabulate to v0.10.0 (#417)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [tabulate](https://github.com/astanin/python-tabulate) | `==0.9.0` → `==0.10.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astanin/python-tabulate (tabulate)</summary>\n\n### [`v0.10.0`](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n[Compare Source](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41My4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/417\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
]
],
"Tree": {
"TreeCommon": {
"ID": [
169,
145,
163,
141,
48,
242,
186,
111,
51,
48,
46,
4,
237,
16,
28,
1,
167,
255,
54,
4
],
"ResolvedID": null
}
},
"ID": [
247,
52,
235,
138,
118,
64,
50,
119,
29,
22,
185,
5,
137,
234,
50,
242,
9,
14,
210,
168
]
}
}
}
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LoginType": 6,
"Type": 0,
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"Name": "luke",
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"FullName": "Luke Tainton",
"Passwd": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"KeepActivityPrivate": false,
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"DiffViewStyle": "unified",
"Salt": "",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Location": "",
"UpdatedUnix": 1776964991,
"NumFollowing": 1,
"Visibility": 1,
"LowerName": "luke"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"Language": "en-US",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Description": "",
"CreatedUnix": 1735676388,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"NumStars": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"MustChangePassword": false,
"Location": "",
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"LoginName": "",
"Type": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"AllowGitHook": false,
"Visibility": 0,
"IsActive": true,
"NumRepos": 0,
"NumMembers": 0,
"FullName": "renovate[bot]",
"MaxRepoCreation": -1,
"IsAdmin": false,
"IsRestricted": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LowerName": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
74,
59,
158,
167,
90,
222,
211,
85,
61,
150,
81,
122,
16,
127,
222,
102,
63,
2,
65,
207
]
}
},
"ID": [
16,
124,
162,
142,
170,
89,
96,
190,
235,
245,
123,
248,
27,
87,
138,
139,
110,
90,
237,
246
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#415)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/415\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
]
]
}
}
}
},
{
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"CommittingUser": {
"Location": "",
"Salt": "",
"IsActive": true,
"NumFollowers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"IsAdmin": true,
"NumTeams": 0,
"NumMembers": 0,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowCreateOrganization": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"ID": 3,
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"FullName": "Luke Tainton",
"MustChangePassword": false,
"LoginSource": 2,
"Description": "",
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowGitHook": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"AllowImportLocal": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Website": "https://renovatebot.com",
"IsRestricted": false,
"AllowGitHook": false,
"DiffViewStyle": "",
"IsAdmin": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"ID": 5,
"Location": "",
"IsActive": true,
"NumRepos": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginName": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AllowCreateOrganization": false,
"EmailNotificationsPreference": "disabled",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Language": "en-US",
"UpdatedUnix": 1768857135
},
"Commit": {
"Parents": [
[
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
]
],
"Tree": {
"TreeCommon": {
"ID": [
135,
87,
222,
200,
9,
213,
147,
0,
220,
23,
205,
184,
1,
126,
201,
187,
147,
173,
255,
0
],
"ResolvedID": null
}
},
"ID": [
255,
156,
103,
220,
32,
12,
39,
240,
8,
172,
132,
157,
96,
228,
103,
22,
32,
254,
26,
183
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update docker/login-action action to v4 (#416)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [docker/login-action](https://github.com/docker/login-action) | action | major | `v3` → `v4` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>docker/login-action (docker/login-action)</summary>\n\n### [`v4`](https://github.com/docker/login-action/compare/v3...v4)\n\n[Compare Source](https://github.com/docker/login-action/compare/v3...v4)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/416\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": "[*git.CommitStatus]"
},
{
"Statuses": [
{
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1772355680,
"Index": 6,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/0",
"Description": "Successful in 28s",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1772355680,
"ID": 89643
},
{
"ID": 89659,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1772355728,
"UpdatedUnix": 1772355728,
"Index": 7,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2
},
{
"ID": 89664,
"RepoID": 25,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/4",
"Creator": "[*user.User]",
"CreatedUnix": 1772355834,
"Index": 8,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m42s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1772355834
},
{
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 89665,
"Repo": "[*repo.Repository]",
"Description": "Successful in 4s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatedUnix": 1772355837,
"UpdatedUnix": 1772355837,
"Index": 9,
"RepoID": 25,
"State": "success",
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/2"
},
{
"Repo": "[*repo.Repository]",
"State": "failure",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"UpdatedUnix": 1772355891,
"ID": 89667,
"Index": 10,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"Description": "Failing after 17s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatedUnix": 1772355891,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"IsRestricted": false,
"ID": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Language": "en-US",
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumTeams": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"IsAdmin": true,
"NumMembers": 0,
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"LowerName": "luke",
"MustChangePassword": false,
"Location": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Passwd": "",
"Description": "",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Email": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 1,
"Visibility": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false
},
"UserCommit": {
"User": {
"IsActive": true,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"CreatedUnix": 1735676388,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"Description": "",
"NumStars": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"IsRestricted": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"LoginType": 0,
"IsAdmin": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"LoginSource": 0,
"LoginName": "",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#414)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/414\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
]
],
"Tree": {
"TreeCommon": {
"ID": [
213,
17,
80,
137,
164,
216,
216,
22,
208,
160,
124,
137,
35,
245,
52,
222,
11,
235,
12,
227
],
"ResolvedID": null
}
},
"ID": [
188,
224,
99,
61,
62,
63,
224,
254,
170,
15,
179,
43,
187,
120,
200,
222,
84,
221,
112,
5
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "",
"UpdatedUnix": 0,
"RepoID": 25,
"SHA": "bce0633d3e3fe0feaa0fb32bbb78c8de54dd7005",
"TargetURL": "/repos/pypilot/actions/runs/898/jobs/3",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0
}
},
{
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1771750839,
"Index": 18,
"State": "success",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1771750839,
"ID": 88359,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 9s"
},
{
"RepoID": 25,
"Creator": "[*user.User]",
"CreatedUnix": 1771750881,
"UpdatedUnix": 1771750881,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/1",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 88381,
"Index": 19
},
{
"UpdatedUnix": 1771750936,
"ID": 88391,
"Index": 20,
"Repo": "[*repo.Repository]",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1771750936,
"RepoID": 25,
"State": "success",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/2",
"Description": "Successful in 3s",
"Creator": "[*user.User]"
},
{
"ID": 88392,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Index": 21,
"Description": "Failing after 58s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1771750943,
"UpdatedUnix": 1771750943
},
{
"ID": 88398,
"Index": 22,
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"Creator": "[*user.User]",
"CreatedUnix": 1771751052,
"UpdatedUnix": 1771751052,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"Description": "Failing after 14s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"ID": 3,
"LoginType": 6,
"Description": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumTeams": 0,
"LoginSource": 2,
"Location": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"Visibility": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"MustChangePassword": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"NumFollowing": 1,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Type": 0,
"IsActive": true,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled"
},
"SigningEmail": "",
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumTeams": 0,
"NumMembers": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginName": "",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"IsRestricted": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LoginType": 0,
"Location": "",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"Visibility": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"Description": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"NumFollowers": 0,
"NumStars": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false
},
"Commit": {
"ID": [
136,
14,
81,
203,
250,
214,
111,
241,
48,
158,
63,
170,
119,
115,
159,
244,
230,
125,
139,
116
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#413)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/413\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
]
],
"Tree": {
"TreeCommon": {
"ID": [
100,
137,
198,
88,
236,
219,
219,
213,
77,
37,
186,
107,
61,
134,
50,
125,
60,
240,
114,
1
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"State": "failure",
"SHA": "880e51cbfad66ff1309e3faa77739ff4e67d8b74",
"TargetURL": "/repos/pypilot/actions/runs/895/jobs/3",
"ContextHash": "",
"Context": "",
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
}
},
{
"Status": {
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25
},
"Statuses": [
{
"Creator": "[*user.User]",
"CreatedUnix": 1770541283,
"ID": 85308,
"State": "success",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Description": "Successful in 20s",
"CreatorID": -2,
"UpdatedUnix": 1770541283,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 85334,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"CreatedUnix": 1770541351,
"UpdatedUnix": 1770541351,
"Index": 17,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/1",
"Description": "Successful in 7s"
},
{
"CreatorID": -2,
"CreatedUnix": 1770541435,
"UpdatedUnix": 1770541435,
"ID": 85339,
"Index": 18,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/4",
"Description": "Failing after 1m30s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"Creator": "[*user.User]"
},
{
"CreatedUnix": 1770541554,
"UpdatedUnix": 1770541554,
"ID": 85343,
"Index": 19,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/2",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"State": "success",
"Description": "Successful in 7s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1770541652,
"ID": 85347,
"RepoID": 25,
"State": "failure",
"SHA": "168b51bf98637816811d4af98d7b5e20e192f261",
"TargetURL": "/repos/pypilot/actions/runs/892/jobs/3",
"UpdatedUnix": 1770541652,
"Index": 20,
"Repo": "[*repo.Repository]",
"Description": "Failing after 23s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"NumTeams": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Salt": "",
"Description": "",
"MaxRepoCreation": -1,
"NumStars": 1,
"LoginType": 6,
"Type": 0,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"NumFollowing": 1,
"ID": 3,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Language": "en-US",
"NumRepos": 3,
"NumMembers": 0,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"IsRestricted": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"ProhibitLogin": false,
"IsActive": true,
"Name": "luke",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"LoginSource": 2,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"UseCustomAvatar": true
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningEmail": ""
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
182,
165,
210,
85,
112,
247,
140,
213,
205,
198,
252,
137,
245,
16,
169,
245,
130,
57,
139,
72
],
"ResolvedID": null
}
},
"ID": [
22,
139,
81,
191,
152,
99,
120,
22,
129,
29,
74,
249,
141,
123,
94,
32,
225,
146,
242,
97
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#412)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/412\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
]
]
},
"User": {
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumRepos": 0,
"NumMembers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Type": 0,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Location": "",
"ID": 5,
"EmailNotificationsPreference": "disabled",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"KeepActivityPrivate": false,
"LoginName": "",
"Language": "en-US",
"NumStars": 0,
"IsAdmin": false,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"LoginType": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1768857135,
"ID": 5,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumStars": 0,
"NumTeams": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"ProhibitLogin": false,
"EmailNotificationsPreference": "disabled",
"Type": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Description": "",
"MaxRepoCreation": -1,
"Theme": "gitea-auto",
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"LowerName": "renovate-bot",
"Type": 0,
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumRepos": 0,
"DiffViewStyle": "",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Location": "",
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Language": "en-US",
"LastRepoVisibility": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"IsActive": true,
"IsAdmin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
109,
4,
24,
38,
128,
10,
151,
131,
87,
181,
79,
200,
224,
59,
231,
243,
92,
61,
198,
213
],
"ResolvedID": null
}
},
"ID": [
168,
69,
64,
152,
193,
201,
136,
226,
70,
230,
69,
65,
57,
151,
65,
89,
131,
146,
134,
12
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "renovate[bot]",
"Email": "renovate-bot@noreply.localhost",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.2 (#411)\n\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
]
]
}
}
},
"Status": {
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"ID": 79838,
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Description": "Successful in 13s",
"Creator": "[*user.User]",
"CreatedUnix": 1769331690,
"UpdatedUnix": 1769331690,
"Index": 5,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/0"
},
{
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"UpdatedUnix": 1769331723,
"ID": 79860,
"RepoID": 25,
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/1",
"Creator": "[*user.User]",
"CreatedUnix": 1769331723,
"Index": 7
},
{
"CreatorID": -2,
"CreatedUnix": 1769331768,
"UpdatedUnix": 1769331768,
"ID": 79870,
"Index": 8,
"Repo": "[*repo.Repository]",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"RepoID": 25,
"State": "success",
"Creator": "[*user.User]"
},
{
"State": "success",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/4",
"Description": "Successful in 1m24s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Repo": "[*repo.Repository]",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331812,
"UpdatedUnix": 1769331812,
"ID": 79871,
"Index": 9,
"RepoID": 25
},
{
"Description": "Failing after 13s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"SHA": "a8454098c1c988e246e64541399741598392860c",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1769331942,
"UpdatedUnix": 1769331942,
"ID": 79878,
"Index": 10,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/886/jobs/3"
}
]
},
{
"Status": "[*git.CommitStatus]",
"Statuses": null,
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"DiffViewStyle": "unified",
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Type": 0,
"LowerName": "luke",
"Website": "https://luke.tainton.uk",
"Salt": "",
"Description": "",
"IsAdmin": true,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumFollowing": 1,
"ID": 3,
"Location": "",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"NumStars": 1,
"NumMembers": 0,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"IsRestricted": false,
"ProhibitLogin": false
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Salt": "",
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"Description": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Location": "",
"MaxRepoCreation": -1,
"Passwd": "",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"LoginType": 6,
"CreatedUnix": 1713634307,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"Visibility": 1,
"Type": 0,
"ID": 3,
"KeepEmailPrivate": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(ci): remove Snyk security workflow and update renovate configuration (#410)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/410\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
]
],
"Tree": {
"TreeCommon": {
"ID": [
160,
109,
243,
213,
111,
228,
8,
253,
75,
112,
108,
61,
111,
204,
142,
219,
39,
111,
104,
238
],
"ResolvedID": null
}
},
"ID": [
195,
242,
181,
249,
244,
205,
104,
30,
115,
156,
74,
107,
161,
112,
215,
27,
216,
246,
202,
90
],
"Author": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
}
}
}
}
},
{
"SignCommit": {
"Verification": {
"CommittingUser": {
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Visibility": 1,
"PasswdHashAlgo": "",
"Description": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"NumTeams": 0,
"IsActive": true,
"LoginName": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Passwd": "",
"LowerName": "luke",
"LoginSource": 2,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LoginType": 6,
"Type": 0,
"LastRepoVisibility": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumStars": 1,
"NumRepos": 3,
"ID": 3,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Location": "",
"Salt": "",
"NumFollowers": 0,
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1
},
"SigningEmail": "",
"TrustStatus": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"IsRestricted": false,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"Description": "",
"UpdatedUnix": 1768857135,
"NumFollowers": 0,
"NumTeams": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"AllowImportLocal": false,
"NumStars": 0,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"LoginName": "",
"IsActive": true,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"ID": 5,
"FullName": "renovate[bot]",
"Location": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Language": "en-US",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowing": 0,
"KeepActivityPrivate": false
},
"Commit": {
"Parents": [
[
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
]
],
"Tree": {
"TreeCommon": {
"ID": [
159,
229,
97,
136,
224,
143,
219,
67,
58,
190,
119,
157,
71,
56,
63,
33,
206,
43,
124,
247
],
"ResolvedID": null
}
},
"ID": [
15,
241,
166,
138,
238,
70,
149,
90,
154,
124,
204,
43,
136,
242,
0,
254,
66,
155,
78,
17
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#409)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/409\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"State": "success",
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11",
"Description": "",
"Context": "",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25
},
"Statuses": [
{
"CreatedUnix": 1768953783,
"UpdatedUnix": 1768953783,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "0ff1a68aee46955a9a7ccc2b88f200fe429b4e11",
"TargetURL": "/repos/pypilot/actions/runs/881/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 77974,
"Index": 6,
"Description": "Successful in 31s",
"Creator": "[*user.User]"
}
]
},
{
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Passwd": "",
"LoginSource": 2,
"Salt": "",
"LoginName": "luke@tainton.uk",
"ID": 3,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Name": "luke",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"LastRepoVisibility": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Description": "",
"CreatedUnix": 1713634307,
"IsRestricted": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginType": 6,
"Language": "en-US",
"IsActive": true,
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"Type": 0,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"KeepActivityPrivate": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"Commit": {
"CommitMessage": "Update renovate.json\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
]
],
"Tree": {
"TreeCommon": {
"ID": [
69,
213,
163,
134,
88,
68,
122,
118,
114,
72,
52,
182,
59,
163,
144,
66,
223,
178,
14,
250
],
"ResolvedID": null
}
},
"ID": [
170,
49,
4,
38,
227,
185,
248,
59,
217,
103,
216,
104,
98,
197,
119,
159,
134,
58,
154,
232
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
}
},
"User": {
"Name": "luke",
"PasswdHashAlgo": "",
"Type": 0,
"Language": "en-US",
"IsRestricted": false,
"AllowImportLocal": false,
"NumRepos": 3,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Passwd": "",
"AllowCreateOrganization": false,
"LowerName": "luke",
"LoginSource": 2,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsActive": true,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"NumTeams": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumStars": 1
}
}
},
"Status": {
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8"
},
"Statuses": [
{
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "aa310426e3b9f83bd967d86862c5779f863a9ae8",
"Description": "Successful in 30s",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1768853997,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/876/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768853997,
"ID": 77521
}
]
},
{
"Statuses": [
{
"Index": 4,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"Description": "Successful in 2m0s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1768780956,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1768780956,
"ID": 77311
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Theme": "tangerine-dream",
"Name": "luke",
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Location": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"ID": 3,
"FullName": "Luke Tainton",
"Language": "en-US",
"Description": "",
"KeepEmailPrivate": false,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"UseCustomAvatar": true,
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Visibility": 1,
"Passwd": "",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"NumRepos": 3,
"LowerName": "luke",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Description": "",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"FullName": "renovate[bot]",
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsActive": true,
"NumFollowers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumRepos": 0,
"Theme": "gitea-auto",
"IsAdmin": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"LoginName": "",
"Location": "",
"UseCustomAvatar": true,
"DiffViewStyle": "",
"MustChangePassword": false,
"IsRestricted": false,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowGitHook": false,
"NumFollowing": 0,
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowCreateOrganization": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
20,
218,
209,
10,
9,
227,
144,
104,
12,
105,
69,
239,
73,
157,
20,
120,
122,
140,
253,
122
],
"ResolvedID": null
}
},
"ID": [
63,
86,
221,
234,
87,
151,
65,
52,
125,
83,
67,
161,
110,
43,
86,
22,
196,
8,
35,
60
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to v26 (#408)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)\n\n[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0)\n\n##### Highlights\n\nIntroduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892)), stabilizing the following changes:\n\n- `always_one_newline_after_import`: Always force one blank line after import\n statements, except when the line after the import is a comment or an import statement\n ([#​4489](https://github.com/psf/black/issues/4489))\n- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,\n such as `def foo(): return \"mock\" # fmt: skip`, where previously the declaration would\n have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800))\n- `fix_module_docstring_detection`: Fix module docstrings being treated as normal\n strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764))\n- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777))\n- `multiline_string_handling`: Make expressions involving multiline strings more compact\n ([#​1879](https://github.com/psf/black/issues/1879))\n- `normalize_cr_newlines`: Add `\\r` style newlines to the potential newlines to\n normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710))\n- `remove_parens_around_except_types`: Remove parentheses around multiple exception\n types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720))\n- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand\n side of assignments while preserving magic trailing commas and intentional multiline\n formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- `standardize_type_comments`: Format type comments which have zero or more spaces\n between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645))\n\nThe following change was not in any previous stable release:\n\n- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253))\n\nThis release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's\n`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958)). Now, files will be ignored if a pattern matches them, even\nif the parent directory is directly unignored. For example, Black would previously\nformat `exclude/not_this/foo.py` with this `.gitignore`:\n\n```\nexclude/\n!exclude/not_this/\n```\n\nNow, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and\nall of it's children are included in formatting (and in Git), use this `.gitignore`:\n\n```\n*/exclude/*\n!*/exclude/not_this/\n```\n\nThis new behavior matches Git. The leading `*/` are only necessary if you wish to ignore\nmatching subdirectories (like the previous behavior did), and not just matching root\ndirectories.\n\n##### Output\n\n- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952))\n\n##### Integrations\n\n- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
]
]
}
}
},
"Status": {
"CreatedUnix": 0,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/873/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "3f56ddea579741347d5343a16e2b5616c408233c",
"Description": "",
"ContextHash": "",
"CreatorID": 0
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1768694592,
"ID": 77043,
"Index": 12,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1768694592,
"RepoID": 25,
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/868/jobs/0",
"Description": "Successful in 30s"
},
{
"CreatedUnix": 1768726872,
"ID": 77139,
"Index": 14,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/0",
"Description": "Successful in 16s",
"CreatorID": -2,
"UpdatedUnix": 1768726872,
"RepoID": 25,
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]"
},
{
"UpdatedUnix": 1768726939,
"ID": 77172,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"Index": 19,
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/1",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1768726939
},
{
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1768727013,
"ID": 77179,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/4",
"Description": "Successful in 1m10s",
"Creator": "[*user.User]",
"UpdatedUnix": 1768727013,
"Index": 20,
"RepoID": 25
},
{
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1768727044,
"ID": 77181,
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Description": "Successful in 1s",
"Context": "Release / Get Release ID (push)",
"UpdatedUnix": 1768727044,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/2"
},
{
"CreatorID": -2,
"CreatedUnix": 1768727237,
"UpdatedUnix": 1768727237,
"ID": 77187,
"Index": 22,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/871/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "b37c346daf9acca272d3ac5f65fc37b3436b41ee",
"Description": "Failing after 13s",
"Context": "Release / Build Wheel File (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Passwd": "",
"Location": "",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"NumStars": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AllowImportLocal": false,
"IsRestricted": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsActive": true,
"NumRepos": 3,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"MaxRepoCreation": -1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"Language": "en-US",
"Description": "",
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "unified",
"LowerName": "luke",
"LoginType": 6,
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"IsAdmin": true,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"Visibility": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": ""
},
"UserCommit": {
"User": {
"Location": "",
"Language": "en-US",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"ID": 5,
"MaxRepoCreation": -1,
"NumStars": 0,
"Visibility": 0,
"Name": "renovate-bot",
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"IsActive": true,
"IsRestricted": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"MustChangePassword": false,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowing": 0,
"DiffViewStyle": "",
"LoginName": "",
"IsAdmin": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Description": "",
"CreatedUnix": 1735676388,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"EmailNotificationsPreference": "disabled",
"Type": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
36,
83,
75,
86,
156,
156,
57,
123,
49,
123,
143,
64,
145,
5,
68,
146,
66,
123,
213,
44
],
"ResolvedID": null
}
},
"ID": [
179,
124,
52,
109,
175,
154,
204,
162,
114,
211,
172,
95,
101,
252,
55,
179,
67,
107,
65,
238
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "feat(deps): lock file maintenance (#407)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/407\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
]
]
}
}
}
},
{
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"RepoID": 25,
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e"
},
"Statuses": [
{
"UpdatedUnix": 1767611980,
"ID": 74896,
"Repo": "[*repo.Repository]",
"SHA": "c8b7d0903156aa2e87992f94059180d4400a131e",
"TargetURL": "/repos/pypilot/actions/runs/851/jobs/0",
"Description": "Successful in 46s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Index": 2,
"RepoID": 25,
"State": "success",
"CreatorID": -2,
"CreatedUnix": 1767611980
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Salt": "",
"Description": "",
"IsAdmin": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"KeepEmailPrivate": false,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"NumFollowers": 0,
"NumTeams": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginType": 6,
"AllowCreateOrganization": false,
"NumStars": 1,
"NumRepos": 3,
"IsRestricted": false,
"MaxRepoCreation": -1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 2,
"DiffViewStyle": "unified"
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"IsRestricted": false,
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Type": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumMembers": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"NumFollowing": 0,
"NumStars": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"NumTeams": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"FullName": "renovate[bot]"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
99,
145,
160,
10,
240,
4,
130,
18,
234,
156,
176,
119,
55,
229,
26,
8,
145,
82,
226,
220
],
"ResolvedID": null
}
},
"ID": [
200,
183,
208,
144,
49,
86,
170,
46,
135,
153,
47,
148,
5,
145,
128,
212,
64,
10,
19,
30
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#406)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/406\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
]
]
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "",
"ContextHash": "",
"CreatorID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0
},
"Statuses": [
{
"ID": 74560,
"Index": 18,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/0",
"Description": "Successful in 10s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1767517260,
"UpdatedUnix": 1767517260
},
{
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1767517342,
"ID": 74575,
"Index": 21,
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/1",
"Description": "Successful in 2s",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1767517342,
"RepoID": 25
},
{
"ID": 74583,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1767517467,
"UpdatedUnix": 1767517467,
"Index": 22,
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/4",
"Description": "Successful in 2m0s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"State": "failure",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "Failing after 45s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 23,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/2",
"Context": "Release / Get Release ID (push)",
"CreatedUnix": 1767517611,
"UpdatedUnix": 1767517611,
"ID": 74587,
"Repo": "[*repo.Repository]"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "skipped",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1767517611,
"ID": 74588,
"Index": 24,
"TargetURL": "/repos/pypilot/actions/runs/847/jobs/3",
"Description": "Has been skipped",
"CreatorID": -2,
"UpdatedUnix": 1767517611
},
{
"Repo": "[*repo.Repository]",
"SHA": "5e465d8b1aac3f55ffad17274c0ba64380f89cb8",
"Description": "Successful in 43s",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1767571431,
"ID": 74803,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/848/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1767571431,
"Index": 26
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"AllowGitHook": false,
"NumStars": 1,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Theme": "tangerine-dream",
"ID": 3,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"IsRestricted": false,
"Visibility": 1,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Salt": "",
"Description": "",
"AllowImportLocal": false,
"NumFollowing": 1,
"Name": "luke",
"LoginType": 6,
"Location": "",
"Language": "en-US",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"Passwd": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"KeepActivityPrivate": false,
"LoginSource": 2,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"IsAdmin": true
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#405)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni4xMSIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/405\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
113,
25,
112,
167,
230,
168,
226,
148,
28,
114,
101,
231,
195,
92,
119,
85,
175,
159,
60,
70
]
}
},
"ID": [
94,
70,
93,
139,
26,
172,
63,
85,
255,
173,
23,
39,
76,
11,
166,
67,
128,
248,
156,
184
]
},
"User": {
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"NumFollowers": 0,
"ID": 5,
"Website": "https://renovatebot.com",
"Name": "renovate-bot",
"Language": "en-US",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"LowerName": "renovate-bot",
"IsActive": true,
"AllowGitHook": false,
"NumStars": 0,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"NumMembers": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"LoginName": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 0
}
}
}
},
{
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumMembers": 0,
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Type": 0,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"LoginType": 6,
"AllowGitHook": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Description": "",
"AllowImportLocal": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"ID": 3,
"LowerName": "luke",
"MustChangePassword": false,
"IsAdmin": true,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"NumTeams": 0,
"Visibility": 1,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumStars": 1,
"KeepEmailPrivate": false,
"IsActive": true,
"AllowCreateOrganization": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"LowerName": "renovate-bot",
"Website": "https://renovatebot.com",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumTeams": 0,
"NumMembers": 0,
"LoginName": "",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Language": "en-US",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"LoginSource": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": false,
"NumFollowing": 0,
"MustChangePassword": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
98,
1,
147,
211,
224,
214,
129,
0,
246,
13,
59,
205,
197,
57,
102,
100,
69,
171,
241,
109
],
"ResolvedID": null
}
},
"ID": [
170,
168,
228,
253,
133,
167,
217,
171,
55,
127,
80,
40,
99,
47,
251,
93,
87,
84,
86,
1
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#404)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/404\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
]
]
}
}
},
"Status": {
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "failure",
"Description": "",
"Context": "",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0"
},
"Statuses": [
{
"ID": 73534,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 40,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/0",
"Description": "Successful in 8s",
"CreatedUnix": 1766912445,
"UpdatedUnix": 1766912445
},
{
"Index": 43,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/1",
"Description": "Successful in 2s",
"CreatedUnix": 1766912492,
"UpdatedUnix": 1766912492,
"RepoID": 25,
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 73549
},
{
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/4",
"Description": "Failing after 58s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1766912552,
"RepoID": 25,
"State": "failure",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"UpdatedUnix": 1766912552,
"ID": 73557,
"Index": 44,
"Repo": "[*repo.Repository]"
},
{
"ID": 73559,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/2",
"CreatorID": -2,
"UpdatedUnix": 1766912603,
"Index": 45,
"Repo": "[*repo.Repository]",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1766912603
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"ID": 73562,
"Index": 46,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 9s",
"CreatorID": -2,
"CreatedUnix": 1766912675,
"UpdatedUnix": 1766912675,
"RepoID": 25,
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"TargetURL": "/repos/pypilot/actions/runs/836/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"State": "success",
"SHA": "aaa8e4fd85a7d9ab377f5028632ffb5d57545601",
"Description": "Successful in 49s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1766966547,
"UpdatedUnix": 1766966547,
"ID": 73604,
"Index": 48,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/837/jobs/0",
"Context": "Security / snyk (push)"
}
]
},
{
"Status": {
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5"
},
"Statuses": [
{
"ID": 71629,
"Index": 12,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1765702862,
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 8s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765702862
},
{
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 71646,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatedUnix": 1765702919,
"UpdatedUnix": 1765702919,
"Index": 15,
"RepoID": 25
},
{
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1765702997,
"Index": 16,
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Description": "Successful in 1m14s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1765702997,
"ID": 71655,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/4"
},
{
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatedUnix": 1765703082,
"UpdatedUnix": 1765703082,
"ID": 71658,
"Index": 17,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1s",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2
},
{
"State": "failure",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"TargetURL": "/repos/pypilot/actions/runs/817/jobs/3",
"Description": "Failing after 9s",
"Context": "Release / Build Wheel File (push)",
"Repo": "[*repo.Repository]",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765703202,
"UpdatedUnix": 1765703202,
"ID": 71662,
"Index": 18,
"RepoID": 25
},
{
"TargetURL": "/repos/pypilot/actions/runs/818/jobs/0",
"Description": "Successful in 32s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"CreatedUnix": 1765756995,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "537aa0f40670b251591f0e916f242859ca82d3a5",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765756995,
"ID": 71797,
"Index": 20,
"RepoID": 25
}
],
"SignCommit": {
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"AllowGitHook": false,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "enabled",
"Salt": "",
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"Theme": "tangerine-dream",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"LoginSource": 2,
"Location": "",
"NumStars": 1,
"NumTeams": 0,
"Name": "luke",
"KeepEmailPrivate": false,
"CreatedUnix": 1713634307,
"IsActive": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Description": "",
"LastRepoVisibility": false,
"AllowCreateOrganization": false
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Description": "",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"DiffViewStyle": "",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Type": 0,
"IsActive": true,
"NumRepos": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"AllowGitHook": false,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"LoginType": 0,
"Language": "en-US",
"NumFollowing": 0,
"ID": 5,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumStars": 0,
"Visibility": 0,
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): update actions/cache action to v5 (#403)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://github.com/actions/cache) | action | major | `v4` -> `v5` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/cache (actions/cache)</summary>\n\n### [`v5`](https://github.com/actions/cache/compare/v4...v5)\n\n[Compare Source](https://github.com/actions/cache/compare/v4...v5)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/403\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
163,
87,
58,
25,
201,
167,
129,
87,
106,
169,
213,
225,
157,
254,
76,
255,
137,
27,
119
],
"ResolvedID": null
}
},
"ID": [
83,
122,
160,
244,
6,
112,
178,
81,
89,
31,
14,
145,
111,
36,
40,
89,
202,
130,
211,
165
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Status": {
"Description": "",
"ContextHash": "",
"UpdatedUnix": 0,
"ID": 0,
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f"
},
"Statuses": [
{
"SHA": "4a40ebfd3421a6e211ba1c0862af4fdaca1da56f",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1765411368,
"UpdatedUnix": 1765411368,
"ID": 70965,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/810/jobs/0",
"Description": "Successful in 1m49s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"Index": 8,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Name": "luke",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UseCustomAvatar": true,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"ID": 3,
"LoginType": 6,
"Salt": "",
"Description": "",
"IsAdmin": true,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumStars": 1,
"Type": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"NumMembers": 0,
"Language": "en-US",
"AllowCreateOrganization": false,
"Visibility": 1,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"MustChangePassword": false,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"LoginSource": 0,
"Type": 0,
"Language": "en-US",
"IsRestricted": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"ID": 5,
"NumStars": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"IsAdmin": false,
"UseCustomAvatar": true,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumRepos": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"AllowCreateOrganization": false,
"ProhibitLogin": false
},
"Commit": {
"ID": [
74,
64,
235,
253,
52,
33,
166,
226,
17,
186,
28,
8,
98,
175,
79,
218,
202,
29,
165,
111
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.12.1,>=25.12.0 (#402)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120)\n\n[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0)\n\n##### Highlights\n\n- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842))\n\n##### Stable style\n\n- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly\n removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845))\n- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on\n string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872))\n- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856))\n\n##### Preview style\n\n- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855))\n- Remove unnecessary parentheses from the left-hand side of assignments while preserving\n magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865))\n- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853))\n- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854))\n- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894))\n\n##### Packaging\n\n- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814))\n\n##### Integrations\n\n- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a\n file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/402\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
]
],
"Tree": {
"TreeCommon": {
"ID": [
34,
246,
0,
51,
146,
25,
100,
253,
53,
248,
137,
179,
121,
145,
38,
230,
64,
94,
83,
85
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"ID": 70413,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Successful in 29s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1765179951,
"Index": 2,
"State": "success",
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765179951
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"KeepActivityPrivate": false,
"LowerName": "luke",
"MustChangePassword": false,
"Language": "en-US",
"Description": "",
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumRepos": 3,
"Email": "luke@tainton.uk",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumTeams": 0,
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumStars": 1,
"ID": 3,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Passwd": "",
"LoginSource": 2,
"Salt": "",
"IsRestricted": false,
"AllowImportLocal": false,
"Type": 0,
"NumFollowing": 1,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"IsAdmin": false,
"NumTeams": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"LastLoginUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumStars": 0,
"LoginSource": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Visibility": 0,
"ID": 5,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsActive": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginName": "",
"Type": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"NumFollowers": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"AllowGitHook": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"IsRestricted": false,
"AllowImportLocal": false,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
56,
81,
31,
170,
203,
144,
118,
178,
47,
101,
58,
103,
22,
231,
218,
99,
180,
120,
44,
85
],
"ResolvedID": null
}
},
"ID": [
147,
246,
26,
179,
248,
212,
162,
198,
21,
165,
45,
94,
106,
49,
152,
218,
180,
114,
91,
234
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#401)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/401\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
]
]
}
}
},
"Status": {
"Creator": "[*user.User]",
"SHA": "93f61ab3f8d4a2c615a52d5e6a3198dab4725bea",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/806/jobs/0",
"Description": ""
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"Index": 0,
"SHA": "26dba20357fa8fa743292be37317312e1818568f",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"UpdatedUnix": 1765152149,
"RepoID": 25,
"State": "success",
"SHA": "26dba20357fa8fa743292be37317312e1818568f",
"TargetURL": "/repos/pypilot/actions/runs/801/jobs/0",
"Description": "Successful in 1m38s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 70364,
"Index": 4,
"Repo": "[*repo.Repository]",
"CreatorID": -2,
"CreatedUnix": 1765152149
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"ProhibitLogin": false,
"NumFollowing": 1,
"PasswdHashAlgo": "",
"LoginSource": 2,
"Language": "en-US",
"UseCustomAvatar": true,
"EmailNotificationsPreference": "enabled",
"NumStars": 1,
"NumMembers": 0,
"IsActive": true,
"LowerName": "luke",
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"Passwd": "",
"Location": "",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Description": "",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"NumTeams": 0
},
"SigningEmail": "",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"IsAdmin": false,
"NumFollowing": 0,
"FullName": "renovate[bot]",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsActive": true,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"NumRepos": 0,
"NumTeams": 0,
"LoginType": 0,
"LoginSource": 0,
"AllowGitHook": false,
"AllowImportLocal": false,
"Visibility": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"IsRestricted": false,
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"Website": "https://renovatebot.com",
"UseCustomAvatar": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"ID": 5,
"Type": 0,
"Location": ""
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pylint to v4 (#399)\n\nThis PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `<4.0.0,>=3.1.0` -> `<4.1.0,>=4.0.4` |  |  |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pylint-dev/pylint (pylint)</summary>\n\n### [`v4.0.4`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.4)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.4)\n\n## What's new in Pylint 4.0.4?\n\nRelease date: 2025-11-30\n\n## False Positives Fixed\n\n- Fixed false positive for `invalid-name` where module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.\n\n Closes [#​10719](https://github.com/pylint-dev/pylint/issues/10719)\n\n- Fix a false positive for `invalid-name` on an UPPER\\_CASED name inside an `if` branch that assigns an object.\n\n Closes [#​10745](https://github.com/pylint-dev/pylint/issues/10745)\n\n### [`v4.0.3`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.3)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3)\n\n## What's new in Pylint 4.0.3?\n\nRelease date: 2025-11-13\n\n## False Positives Fixed\n\n- Add Enum dunder methods `_generate_next_value_`, `_missing_`, `_numeric_repr_`, `_add_alias_`, and `_add_value_alias_` to the list passed to `--good-dunder-names`.\n\n Closes [#​10435](https://github.com/pylint-dev/pylint/issues/10435)\n\n- Fixed false positive for `invalid-name` with `typing.Annotated`.\n\n Closes [#​10696](https://github.com/pylint-dev/pylint/issues/10696)\n\n- Fix false positive for `f-string-without-interpolation` with template strings\n when using format spec.\n\n Closes [#​10702](https://github.com/pylint-dev/pylint/issues/10702)\n\n- Fix a false positive when an UPPER\\_CASED class attribute was raising an\n `invalid-name` when typed with `Final`.\n\n Closes [#​10711](https://github.com/pylint-dev/pylint/issues/10711)\n\n- Fix a false positive for `unbalanced-tuple-unpacking` when a tuple is assigned to a function call and the structure of the function's return value is ambiguous.\n\n Closes [#​10721](https://github.com/pylint-dev/pylint/issues/10721)\n\n## Other Bug Fixes\n\n- Make 'ignore' option work as expected again.\n\n Closes [#​10669](https://github.com/pylint-dev/pylint/issues/10669)\n\n- Fix crash for `consider-using-assignment-expr` when a variable annotation without assignment\n is used as the `if` test expression.\n\n Closes [#​10707](https://github.com/pylint-dev/pylint/issues/10707)\n\n- Fix crash for `prefer-typing-namedtuple` and `consider-math-not-float` when\n a `slice` object is called.\n\n Closes [#​10708](https://github.com/pylint-dev/pylint/issues/10708)\n\n### [`v4.0.2`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.2)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.2)\n\n## False Positives Fixed\n\n- Fix false positive for `invalid-name` on a partially uninferable module-level constant.\n\n Closes [#​10652](https://github.com/pylint-dev/pylint/issues/10652)\n\n- Fix a false positive for `invalid-name` on exclusive module-level assignments\n composed of three or more branches. We won't raise `disallowed-name` on module-level names that can't be inferred\n until a further refactor to remove this false negative is done.\n\n Closes [#​10664](https://github.com/pylint-dev/pylint/issues/10664)\n\n- Fix false positive for `invalid-name` for `TypedDict` instances.\n\n Closes [#​10672](https://github.com/pylint-dev/pylint/issues/10672)\n\n### [`v4.0.1`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.1)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.0...v4.0.1)\n\n## What's new in Pylint 4.0.1?\n\nRelease date: 2025-10-14\n\n## False Positives Fixed\n\n- Exclude `__all__` and `__future__.annotations` from `unused-variable`.\n\n Closes [#​10019](https://github.com/pylint-dev/pylint/issues/10019)\n\n- Fix false-positive for `bare-name-capture-pattern` if a case guard is used.\n\n Closes [#​10647](https://github.com/pylint-dev/pylint/issues/10647)\n\n- Check enums created with the `Enum()` functional syntax to pass against the\n `--class-rgx` for the `invalid-name` check, like other enums.\n\n Closes [#​10660](https://github.com/pylint-dev/pylint/issues/10660)\n\n### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0)\n\n[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0)\n\n- Pylint now supports Python 3.14.\n\n- Pylint's inference engine (`astroid`) is now much more precise,\n understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj)!)\n\nConsider this example:\n\n```python\nclass Result:\n errors: dict | None = None\n\nresult = Result()\nif result.errors:\n result.errors[field_key]\n # inference engine understands result.errors cannot be None\n # pylint no longer raises unsubscriptable-object\n```\n\nThe required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0) for additional fixes, features, and performance improvements applicable to pylint.\n\n- Handling of `invalid-name` at the module level was patchy. Now,\n module-level constants that are reassigned are treated as variables and checked\n against `--variable-rgx` rather than `--const-rgx`. Module-level lists,\n sets, and objects can pass against either regex.\n\nHere, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:\n\n```python\nLIMIT = 500 # [invalid-name]\nif sometimes:\n LIMIT = 1 # [invalid-name]\n```\n\nIf this is undesired, refactor using *exclusive* assignment so that it is\nevident that this assignment happens only once:\n\n```python\nif sometimes:\n LIMIT = 1\nelse:\n LIMIT = 500 # exclusive assignment: uses const regex, no warning\n```\n\nLists, sets, and objects still pass against either `const-rgx` or `variable-rgx`\neven if reassigned, but are no longer completely skipped:\n\n```python\nMY_LIST = []\nmy_list = []\nMy_List = [] # [invalid-name]\n```\n\nRemember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names) to your liking.\n\n## Breaking Changes\n\n- `invalid-name` now distinguishes module-level constants that are assigned only once\n from those that are reassigned and now applies `--variable-rgx` to the latter. Values\n other than literals (lists, sets, objects) can pass against either the constant or\n variable regexes (e.g. \"LOGGER\" or \"logger\" but not \"LoGgEr\").\n\n Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly\n allow good names.\n\n Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585)\n\n- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated\n and will be removed.\n\n Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052)\n\n- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.\n\n Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.\n You should now call `Run(args).run()` which will return the exit code instead.\n Having a class that always raised a `SystemExit` exception was considered a bug.\n\n Normal usage of pyreverse through the CLI will not be affected by this change.\n\n Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689)\n\n- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead\n of false-positive error messages. You should remove it from your conf if it's defined.\n\n Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962)\n\n- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword\n and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.\n\n Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071)\n\n- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is\n now emitted for every Python version since it will raise a syntax warning in Python 3.14.\n See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/).\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.\n\n Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583)\n\n- Version requirement for `isort` has been bumped to >=5.0.0.\n The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has\n been removed.\n\n Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637)\n\n## New Features\n\n- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from\n the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses\n `\"` instead of `'` to better work with what the python ast returns.\n\n Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.\n\n Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045)\n Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267)\n\n- The `fixme` check can now search through docstrings as well as comments, by using\n `check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.\n\n Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255)\n\n- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons\n used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.\n\n Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353)\n\n- The verbose option now outputs the filenames of the files that have been checked.\n Previously, it only included the number of checked and skipped files.\n\n Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357)\n\n- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.\n This makes it easier to quickly find the errors that are causing pylint CI job failures.\n\n Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898)\n\n- Enhanced support for [@​property](https://github.com/property) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.\n\n Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057)\n\n- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.\n This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.\n\n Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077)\n\n- Handle deferred evaluation of annotations in Python 3.14.\n\n Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149)\n\n- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).\n\n Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236)\n\n- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.\n\n Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242)\n\n- pypy 3.11 is now officially supported.\n\n Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287)\n\n- Add support for Python 3.14.\n\n Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467)\n\n- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.\n\n Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541)\n\n## New Checks\n\n- Add `match-statements` checker and the following message:\n `bare-name-capture-pattern`.\n This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.\n This code is a SyntaxError at runtime.\n\n Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128)\n\n- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.\n\n Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408)\n\n- Add `break-in-finally` warning. Using `break` inside the `finally` clause\n will raise a syntax warning in Python 3.14.\n See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>`\\_.\n\n Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480)\n\n- Add new checks for invalid uses of class patterns in :keyword:`match`.\n\n - :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.\n - :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.\n - :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.\n\n Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559)\n\n- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.\n\n - :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of\n using an `as` pattern.\n - :ref:`match-class-positional-attributes` is emitted if a class pattern has positional\n attributes when keywords could be used.\n\n Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587)\n\n- Add a `consider-math-not-float` message. `float(\"nan\")` and `float(\"inf\")` are slower\n than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding\n the initial import of math) and they are also not well typed when using mypy.\n This check also catches typos in float calls as a side effect.\n\n The :ref:`pylint.extensions.code_style` need to be activated for this check to work.\n\n Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621)\n\n## False Positives Fixed\n\n- Fix a false positive for `used-before-assignment` when a variable defined under\n an `if` and via a named expression (walrus operator) is used later when guarded\n under the same `if` test.\n\n Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061)\n\n- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.\n\n Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632)\n\n## False Negatives Fixed\n\n- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.\n\n Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893)\n\n- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.\n\n Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667)\n\n- Check module-level constants with type annotations for `invalid-name`.\n Remember to adjust `const-naming-style` or `const-rgx` to your liking.\n\n Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770)\n\n- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.\n\n Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894)\n\n- We now raise a `logging-too-few-args` for format string with no\n interpolation arguments at all (i.e. for something like `logging.debug(\"Awaiting process %s\")`\n or `logging.debug(\"Awaiting process {pid}\")`). Previously we did not raise for such case.\n\n Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999)\n\n- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.\n\n Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028)\n\n- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined\n and later assigned to a type-annotated variable.\n\n Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421)\n\n- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.\n\n Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453)\n\n- Count match cases for `too-many-branches` check.\n\n Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542)\n\n- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.\n\n Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633)\n\n## Other Bug Fixes\n\n- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),\n pylint will now display a '?' character (using `encode(encoding=\"utf-8\", errors=\"replace\")`)\n instead of crashing. The functional tests classes are also updated to handle this case.\n\n Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736)\n\n- Fixed unidiomatic-typecheck only checking left-hand side.\n\n Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217)\n\n- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.\n\n Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282)\n\n- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.\n\n Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)\n\n- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`\n instead of `min` or `max` directly.\n\n Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626)\n\n- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list\n was deleted inside a for loop.\n\n Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627)\n\n## Other Changes\n\n- Remove support for launching pylint with Python 3.9.\n Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.\n\n Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405)\n\n## Internal Changes\n\n- Modified test framework to allow for different test output for different Python versions.\n\n Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/399\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
]
],
"Tree": {
"TreeCommon": {
"ID": [
72,
85,
10,
212,
246,
38,
71,
70,
244,
238,
16,
246,
221,
211,
108,
244,
10,
123,
241,
78
],
"ResolvedID": null
}
},
"ID": [
38,
219,
162,
3,
87,
250,
143,
167,
67,
41,
43,
227,
115,
23,
49,
46,
24,
24,
86,
143
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
}
},
{
"Statuses": [
{
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1765106649,
"UpdatedUnix": 1765106649,
"ID": 70241,
"Index": 2,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"Description": "Successful in 28s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"Location": "",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumRepos": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"Language": "en-US",
"Description": "",
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"ID": 3,
"LoginSource": 2,
"IsRestricted": false,
"FullName": "Luke Tainton",
"MustChangePassword": false,
"Type": 0,
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"Visibility": 1,
"MaxRepoCreation": -1,
"Email": "luke@tainton.uk",
"Passwd": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Name": "luke",
"AllowGitHook": false,
"NumStars": 1,
"Theme": "tangerine-dream",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"Warning": false
},
"UserCommit": {
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#400)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/400\nReviewed-by: Luke Tainton <luke@tainton.uk>\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
]
],
"Tree": {
"TreeCommon": {
"ID": [
5,
15,
160,
130,
189,
62,
26,
14,
129,
54,
113,
125,
195,
2,
185,
181,
90,
252,
198,
188
],
"ResolvedID": null
}
},
"ID": [
184,
245,
80,
141,
202,
100,
36,
225,
62,
243,
94,
228,
179,
223,
112,
235,
12,
117,
123,
123
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
}
},
"User": {
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"MaxRepoCreation": -1,
"ID": 5,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Language": "en-US",
"AllowGitHook": false,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"IsAdmin": false,
"NumTeams": 0,
"NumMembers": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"LastRepoVisibility": false,
"Visibility": 0,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"IsActive": true,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"SHA": "b8f5508dca6424e13ef35ee4b3df70eb0c757b7b",
"TargetURL": "/repos/pypilot/actions/runs/797/jobs/0",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"Index": 0
}
},
{
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1765065755,
"ID": 70065,
"Index": 4,
"Repo": "[*repo.Repository]",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1765065755,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/791/jobs/0",
"Description": "Successful in 1m37s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
},
{
"Description": "Successful in 11s",
"Context": "Release / Tag release (push)",
"Index": 7,
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765098081,
"UpdatedUnix": 1765098081,
"ID": 70154,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/0"
},
{
"ID": 70171,
"Index": 11,
"Repo": "[*repo.Repository]",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1765098116,
"UpdatedUnix": 1765098116,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/1",
"Description": "Successful in 2s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]"
},
{
"Index": 12,
"RepoID": 25,
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/4",
"Description": "Failing after 46s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatedUnix": 1765098163,
"ID": 70180,
"Repo": "[*repo.Repository]",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1765098163
},
{
"ID": 70181,
"Index": 13,
"RepoID": 25,
"State": "success",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"Description": "Successful in 1s",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatedUnix": 1765098168,
"UpdatedUnix": 1765098168
},
{
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1765098326,
"UpdatedUnix": 1765098326,
"ID": 70186,
"Index": 14,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"Description": "Failing after 10s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Passwd": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"Name": "luke",
"Description": "",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumMembers": 0,
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsAdmin": true,
"ProhibitLogin": false,
"Visibility": 1,
"LoginSource": 2,
"IsRestricted": false,
"AllowImportLocal": false,
"NumStars": 1,
"KeepActivityPrivate": false,
"ID": 3,
"Location": "",
"NumFollowers": 0,
"PasswdHashAlgo": "",
"Type": 0,
"IsActive": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"LowerName": "luke",
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"Salt": "",
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"KeepEmailPrivate": false
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"AllowImportLocal": false,
"NumTeams": 0,
"Type": 0,
"Language": "en-US",
"AvatarEmail": "renovate@git.tainton.uk",
"FullName": "renovate[bot]",
"LoginName": "",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"DiffViewStyle": "",
"MustChangePassword": false,
"Description": "",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumStars": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"NumMembers": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsActive": true,
"IsAdmin": false,
"NumFollowers": 0,
"Visibility": 0,
"ID": 5,
"LoginType": 0,
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"IsRestricted": false,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"UpdatedUnix": 1768857135,
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
220,
67,
1,
181,
75,
1,
117,
234,
73,
193,
202,
187,
125,
224,
179,
177,
161,
250,
50,
94
],
"ResolvedID": null
}
},
"ID": [
113,
119,
126,
204,
2,
26,
9,
206,
91,
227,
253,
94,
236,
129,
151,
146,
248,
202,
5,
202
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6.0.1 (#398)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v6.0.0` -> `v6.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1)\n\n#### What's Changed\n\n- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2314](https://github.com/actions/checkout/pull/2314)\n- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple) in [#​2327](https://github.com/actions/checkout/pull/2327)\n- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple) in [#​2328](https://github.com/actions/checkout/pull/2328)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/398\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
]
}
}
},
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"State": "failure",
"SHA": "71777ecc021a09ce5be3fd5eec819792f8ca05ca",
"TargetURL": "/repos/pypilot/actions/runs/792/jobs/3",
"Creator": "[*user.User]"
}
},
{
"Status": {
"Index": 0,
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1764493272,
"ID": 68510,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1764493272,
"Index": 12,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"Description": "Successful in 12s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)"
},
{
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/1",
"CreatedUnix": 1764493310,
"UpdatedUnix": 1764493310,
"ID": 68528,
"Repo": "[*repo.Repository]",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 15,
"RepoID": 25,
"State": "success"
},
{
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/4",
"Description": "Successful in 1m8s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 68538,
"Index": 16,
"State": "success",
"CreatorID": -2,
"CreatedUnix": 1764493382,
"UpdatedUnix": 1764493382,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/2",
"Description": "Successful in 2s",
"Context": "Release / Get Release ID (push)",
"ID": 68539,
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1764493383,
"UpdatedUnix": 1764493383,
"Index": 17
},
{
"CreatedUnix": 1764493532,
"UpdatedUnix": 1764493532,
"ID": 68544,
"Index": 18,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/781/jobs/3",
"Description": "Failing after 11s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2
},
{
"Creator": "[*user.User]",
"Index": 30,
"State": "success",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1764979403,
"UpdatedUnix": 1764979403,
"ID": 69689,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "fbbcb369c4afc7bb30f18a49c9ab348498e5642f",
"TargetURL": "/repos/pypilot/actions/runs/789/jobs/0",
"Description": "Successful in 30s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"LoginName": "luke@tainton.uk",
"Type": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LoginType": 6,
"Salt": "",
"Language": "en-US",
"Description": "",
"IsRestricted": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumMembers": 0,
"ID": 3,
"Email": "luke@tainton.uk",
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LoginSource": 2,
"Location": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumTeams": 0,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"Passwd": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991
}
},
"UserCommit": {
"User": {
"EmailNotificationsPreference": "disabled",
"IsAdmin": false,
"KeepActivityPrivate": false,
"ID": 5,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"LoginName": "",
"Location": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"NumFollowing": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Visibility": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 0,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Description": "",
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"MaxRepoCreation": -1,
"IsActive": true,
"IsRestricted": false,
"ProhibitLogin": false,
"NumRepos": 0,
"NumTeams": 0,
"MustChangePassword": false,
"LoginType": 0,
"Type": 0,
"AvatarEmail": "renovate@git.tainton.uk",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot"
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "feat(deps): lock file maintenance (#397)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/397\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
173,
23,
222,
244,
220,
26,
221,
151,
202,
142,
158,
64,
2,
18,
114,
138,
133,
208,
241
],
"ResolvedID": null
}
},
"ID": [
251,
188,
179,
105,
196,
175,
199,
187,
48,
241,
138,
73,
201,
171,
52,
132,
152,
229,
100,
47
]
}
}
}
},
{
"Statuses": [
{
"CreatorID": -2,
"Index": 14,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatedUnix": 1763888468,
"UpdatedUnix": 1763888468,
"ID": 66994,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/0",
"Description": "Successful in 8s",
"Context": "Release / Tag release (push)"
},
{
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 67003,
"Index": 15,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"Creator": "[*user.User]",
"CreatedUnix": 1763888498,
"UpdatedUnix": 1763888498,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/1",
"Description": "Successful in 2s"
},
{
"UpdatedUnix": 1763888580,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/4",
"Description": "Successful in 1m19s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatedUnix": 1763888580,
"ID": 67008,
"Index": 16,
"State": "success",
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2
},
{
"Context": "Release / Get Release ID (push)",
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763888664,
"UpdatedUnix": 1763888664,
"ID": 67013,
"Index": 17,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/2",
"Description": "Successful in 1s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"CreatedUnix": 1763888734,
"UpdatedUnix": 1763888734,
"ID": 67015,
"RepoID": 25,
"State": "failure",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/770/jobs/3",
"Creator": "[*user.User]",
"Index": 18,
"Repo": "[*repo.Repository]",
"Description": "Failing after 8s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2
},
{
"UpdatedUnix": 1764201732,
"RepoID": 25,
"State": "success",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"Description": "Successful in 29s",
"Creator": "[*user.User]",
"CreatedUnix": 1764201732,
"ID": 67793,
"Index": 26,
"Repo": "[*repo.Repository]",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumStars": 1,
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"AllowGitHook": false,
"NumFollowers": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"Email": "luke@tainton.uk",
"Salt": "",
"AvatarEmail": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"Location": "",
"LastRepoVisibility": false,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Type": 0,
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"NumMembers": 0,
"LoginType": 6,
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumRepos": 3,
"NumTeams": 0,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsActive": true,
"ProhibitLogin": false,
"LowerName": "luke",
"Passwd": ""
}
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Type": 0,
"ID": 5,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"IsRestricted": false,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"Location": "",
"NumFollowing": 0,
"NumStars": 0,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"IsActive": true,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"LoginSource": 0,
"LoginName": "",
"Visibility": 0,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Website": "https://renovatebot.com",
"Description": "",
"NumFollowers": 0
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v6 (#396)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v5.0.1` -> `v6.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0)\n\n#### What's Changed\n\n- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc) in [#​2248](https://github.com/actions/checkout/pull/2248)\n- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple) in [#​2286](https://github.com/actions/checkout/pull/2286)\n- v6-beta by [@​ericsciple](https://github.com/ericsciple) in [#​2298](https://github.com/actions/checkout/pull/2298)\n- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple) in [#​2311](https://github.com/actions/checkout/pull/2311)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/396\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
126,
142,
13,
211,
103,
35,
185,
45,
105,
246,
8,
90,
180,
223,
112,
140,
250,
75,
70,
182
],
"ResolvedID": null
}
},
"ID": [
54,
28,
214,
163,
35,
135,
194,
89,
185,
24,
241,
128,
222,
98,
60,
215,
208,
219,
220,
47
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Index": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/776/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"RepoID": 25,
"State": "failure",
"SHA": "361cd6a32387c259b918f180de623cd7d0dbdc2f",
"ContextHash": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0
}
},
{
"Statuses": [
{
"Index": 8,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"Description": "Successful in 1m25s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1763596954,
"RepoID": 25,
"State": "success",
"SHA": "4469b7ebb1f2af6799316063186883c159691553",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1763596954,
"ID": 66073
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumStars": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Passwd": "",
"LoginSource": 2,
"IsActive": true,
"NumRepos": 3,
"NumMembers": 0,
"DiffViewStyle": "unified",
"Name": "luke",
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"FullName": "Luke Tainton",
"Salt": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumTeams": 0,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"ID": 3,
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"IsRestricted": false
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumStars": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"LoginName": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"MustChangePassword": false,
"NumRepos": 0,
"UpdatedUnix": 1768857135,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Location": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Language": "en-US",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"IsActive": true,
"IsAdmin": false,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"EmailNotificationsPreference": "disabled",
"LoginType": 0,
"DiffViewStyle": "",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"AllowImportLocal": false
},
"Commit": {
"ID": [
68,
105,
183,
235,
177,
242,
175,
103,
153,
49,
96,
99,
24,
104,
131,
193,
89,
105,
21,
83
],
"Author": {
"When": {},
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): lock file maintenance (#394)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/394\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
166,
1,
127,
104,
27,
25,
66,
25,
254,
228,
231,
152,
210,
90,
88,
58,
77,
254,
32,
200
],
"ResolvedID": null
}
}
}
}
},
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "4469b7ebb1f2af6799316063186883c159691553",
"TargetURL": "/repos/pypilot/actions/runs/763/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"State": "success",
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1763407338,
"UpdatedUnix": 1763407338,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "43ead425d81a1c101b2790994c61e9062b3ecc6a",
"TargetURL": "/repos/pypilot/actions/runs/759/jobs/0",
"Description": "Successful in 35s",
"Creator": "[*user.User]",
"ID": 65464,
"RepoID": 25,
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"CreatedUnix": 1713634307,
"IsActive": true,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumStars": 1,
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"MaxRepoCreation": -1,
"ID": 3,
"Name": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LowerName": "luke",
"KeepEmailPrivate": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"AllowImportLocal": false,
"NumRepos": 3,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"MustChangePassword": false,
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"Visibility": 1,
"Salt": "",
"Description": "",
"EmailNotificationsPreference": "enabled",
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"IsAdmin": true,
"Email": "luke@tainton.uk",
"Type": 0
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"Description": "",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"LowerName": "renovate-bot",
"LoginSource": 0,
"IsRestricted": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"NumTeams": 0,
"Name": "renovate-bot",
"LoginType": 0,
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"KeepActivityPrivate": false,
"ID": 5,
"NumFollowing": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsActive": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"IsAdmin": false,
"Visibility": 0,
"Type": 0,
"LastRepoVisibility": false,
"NumStars": 0,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"UpdatedUnix": 1768857135
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
91,
191,
127,
235,
96,
160,
229,
194,
236,
166,
1,
130,
108,
101,
81,
243,
173,
26,
39,
165
],
"ResolvedID": null
}
},
"ID": [
67,
234,
212,
37,
216,
26,
28,
16,
27,
39,
144,
153,
76,
97,
233,
6,
43,
62,
204,
106
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5.0.1 (#395)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | patch | `v5.0.0` -> `v5.0.1` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1)\n\n[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1)\n\n#### What's Changed\n\n- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple) in [#​2301](https://github.com/actions/checkout/pull/2301)\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/395\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
]
]
}
}
}
},
{
"Statuses": [
{
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 17,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/0",
"Description": "Successful in 12s",
"CreatedUnix": 1763283641,
"UpdatedUnix": 1763283641,
"ID": 65003,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/1",
"Creator": "[*user.User]",
"Index": 21,
"State": "success",
"Description": "Successful in 1s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1763283681,
"UpdatedUnix": 1763283681,
"ID": 65019,
"RepoID": 25
},
{
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/4",
"Description": "Successful in 1m4s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1763283749,
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"CreatorID": -2,
"UpdatedUnix": 1763283749,
"ID": 65028,
"State": "success"
},
{
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"CreatedUnix": 1763283769,
"UpdatedUnix": 1763283769,
"Index": 23,
"RepoID": 25,
"State": "success",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"ID": 65030,
"Repo": "[*repo.Repository]"
},
{
"Index": 24,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/753/jobs/3",
"Description": "Failing after 8s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"RepoID": 25,
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763283876,
"UpdatedUnix": 1763283876,
"ID": 65034
},
{
"Description": "Successful in 29s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1763337724,
"ID": 65191,
"RepoID": 25,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1763337724,
"Index": 26,
"Repo": "[*repo.Repository]",
"State": "success"
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"ID": 3,
"Language": "en-US",
"CreatedUnix": 1713634307,
"NumFollowers": 0,
"NumStars": 1,
"NumMembers": 0,
"Name": "luke",
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LowerName": "luke",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Type": 0,
"Location": "",
"IsRestricted": false,
"NumTeams": 0,
"FullName": "Luke Tainton",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowGitHook": false,
"NumFollowing": 1,
"NumRepos": 3,
"Visibility": 1,
"Passwd": "",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsActive": true,
"AllowImportLocal": false,
"DiffViewStyle": "unified",
"Description": "",
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningEmail": ""
},
"UserCommit": {
"User": {
"LoginType": 0,
"UpdatedUnix": 1768857135,
"IsActive": true,
"NumStars": 0,
"DiffViewStyle": "",
"Type": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"FullName": "renovate[bot]",
"Website": "https://renovatebot.com",
"IsRestricted": false,
"NumFollowing": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Location": "",
"Language": "en-US",
"Description": "",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumFollowers": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumTeams": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50"
},
"Commit": {
"CommitMessage": "feat(deps): lock file maintenance (#392)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/392\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
]
],
"Tree": {
"TreeCommon": {
"ID": [
42,
226,
121,
99,
136,
22,
219,
203,
63,
199,
190,
63,
142,
253,
170,
197,
150,
18,
96,
246
],
"ResolvedID": null
}
},
"ID": [
202,
38,
112,
79,
52,
198,
96,
203,
129,
243,
111,
116,
118,
97,
140,
204,
100,
233,
44,
179
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
}
},
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"SHA": "ca26704f34c660cb81f36f7476618ccc64e92cb3",
"TargetURL": "/repos/pypilot/actions/runs/754/jobs/0",
"Description": "",
"ContextHash": "",
"Context": ""
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794",
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Description": ""
},
"Statuses": [
{
"Index": 2,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/745/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd83e18c3c7412e1fcd11abf73ea0569f6a7794",
"Description": "Successful in 29s",
"CreatedUnix": 1762809315,
"UpdatedUnix": 1762809315,
"ID": 63857
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"Visibility": 1,
"FullName": "Luke Tainton",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"ID": 3,
"LowerName": "luke",
"Passwd": "",
"LoginType": 6,
"Location": "",
"Website": "https://luke.tainton.uk",
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"IsRestricted": false,
"Name": "luke",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"IsActive": true,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"RepoAdminChangeTeamAccess": false
}
},
"UserCommit": {
"User": {
"LoginSource": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"NumRepos": 0,
"IsAdmin": false,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"Type": 0,
"Location": "",
"AllowGitHook": false,
"LoginType": 0,
"IsActive": true,
"NumFollowing": 0,
"DiffViewStyle": "",
"Language": "en-US",
"LastRepoVisibility": false,
"ID": 5,
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Website": "https://renovatebot.com",
"LastLoginUnix": 1768857135,
"AllowImportLocal": false,
"IsRestricted": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"RepoAdminChangeTeamAccess": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Visibility": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"Name": "renovate-bot"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
217,
134,
68,
223,
185,
140,
184,
24,
100,
154,
202,
88,
139,
124,
2,
123,
217,
8,
151,
36
]
}
},
"ID": [
59,
216,
62,
24,
195,
199,
65,
46,
31,
205,
17,
171,
247,
62,
160,
86,
159,
106,
119,
148
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.11.1,>=25.11.0 (#393)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110)\n\n[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0)\n\n##### Highlights\n\n- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804))\n- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805))\n\n##### Stable style\n\n- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811))\n- Comments containing fmt directives now preserve their exact formatting instead of\n being normalized ([#​4811](https://github.com/psf/black/issues/4811))\n\n##### Preview style\n\n- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760))\n- Fix bug where module docstrings would be treated as normal strings if preceded by\n comments ([#​4764](https://github.com/psf/black/issues/4764))\n- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777))\n- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645))\n- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound\n statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800))\n\n##### Configuration\n\n- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803))\n\n##### Packaging\n\n- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773))\n\n##### Output\n\n- Write unchanged content to stdout when excluding formatting from stdin using pipes\n ([#​4610](https://github.com/psf/black/issues/4610))\n\n##### *Blackd*\n\n- Implemented BlackDClient. This simple python client allows to easily send formatting\n requests to blackd ([#​4774](https://github.com/psf/black/issues/4774))\n\n##### Integrations\n\n- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804))\n- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only\n \"stability\" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770))\n- Improve error message for vim plugin users. It now handles independently vim version\n- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772))\n- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675))\n- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/393\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
]
]
}
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"State": "success",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "Successful in 13s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1762678874,
"ID": 63435,
"Index": 7,
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1762678874,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"ID": 63449,
"RepoID": 25,
"State": "success",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"Index": 11,
"Repo": "[*repo.Repository]",
"Description": "Successful in 2s",
"Creator": "[*user.User]",
"CreatedUnix": 1762678898,
"UpdatedUnix": 1762678898
},
{
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/2",
"Description": "Successful in 2s",
"CreatedUnix": 1762678941,
"UpdatedUnix": 1762678941,
"ID": 63456,
"Index": 12,
"RepoID": 25,
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Repo": "[*repo.Repository]"
},
{
"CreatedUnix": 1762678972,
"UpdatedUnix": 1762678972,
"ID": 63457,
"Index": 13,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/4",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"RepoID": 25,
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "Failing after 1m11s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2
},
{
"Index": 14,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"TargetURL": "/repos/pypilot/actions/runs/739/jobs/3",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 63459,
"RepoID": 25,
"Description": "Failing after 13s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatedUnix": 1762679010,
"UpdatedUnix": 1762679010
},
{
"ID": 63615,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/740/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1762732935,
"UpdatedUnix": 1762732935,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "50dbaafb781e21afd524a931537301c27d93ced2",
"Description": "Successful in 1m20s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Description": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Visibility": 1,
"Passwd": "",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"NumRepos": 3,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumFollowers": 0,
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"KeepActivityPrivate": false,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"Location": "",
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumStars": 1,
"KeepEmailPrivate": false,
"LoginType": 6
}
},
"UserCommit": {
"User": {
"IsRestricted": false,
"FullName": "renovate[bot]",
"LoginSource": 0,
"AllowImportLocal": false,
"NumStars": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"NumTeams": 0,
"Visibility": 0,
"ID": 5,
"NumFollowers": 0,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Location": "",
"IsAdmin": false,
"AllowCreateOrganization": false,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"UseCustomAvatar": true,
"LoginName": "",
"ProhibitLogin": false,
"NumRepos": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"Description": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"LoginType": 0,
"Type": 0,
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Parents": [
[
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
]
],
"Tree": {
"TreeCommon": {
"ID": [
113,
243,
74,
184,
156,
199,
136,
221,
222,
40,
36,
97,
254,
160,
16,
196,
118,
221,
228,
20
],
"ResolvedID": null
}
},
"ID": [
80,
219,
170,
251,
120,
30,
33,
175,
213,
36,
169,
49,
83,
115,
1,
194,
125,
147,
206,
210
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency pytest to v9 (#391)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [pytest](https://github.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `<9.0.0,>=8.1.1` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pytest-dev/pytest (pytest)</summary>\n\n### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/391\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 9s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 11,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/0",
"CreatorID": -2,
"CreatedUnix": 1762074063,
"UpdatedUnix": 1762074063,
"ID": 61793,
"RepoID": 25
},
{
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"CreatedUnix": 1762074092,
"UpdatedUnix": 1762074092,
"ID": 61802,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Description": "Successful in 4s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"Index": 14,
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/1"
},
{
"Description": "Successful in 1m26s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1762074179,
"ID": 61809,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762074179,
"Index": 15,
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/4"
},
{
"UpdatedUnix": 1762074183,
"RepoID": 25,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 61810,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 2s",
"CreatedUnix": 1762074183
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"TargetURL": "/repos/pypilot/actions/runs/728/jobs/3",
"Description": "Failing after 11s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"State": "failure",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1762074196,
"UpdatedUnix": 1762074196,
"ID": 61812,
"Index": 17
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/734/jobs/0",
"Description": "Successful in 1m32s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1762560153,
"ID": 63038,
"Index": 29,
"SHA": "3bd993f4390cc777188746cf793a4259ce5f1fd5",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1762560153
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Theme": "tangerine-dream",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"DiffViewStyle": "unified",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"NumRepos": 3,
"KeepActivityPrivate": false,
"LoginType": 6,
"Location": "",
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"Description": "",
"IsRestricted": false,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"Visibility": 1,
"ID": 3,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumTeams": 0,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"NumMembers": 0
},
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"AllowImportLocal": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Location": "",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"LoginType": 0,
"Language": "en-US",
"NumMembers": 0,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"Visibility": 0,
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"LoginName": "",
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"NumRepos": 0
},
"Commit": {
"Parents": [
[
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
]
],
"Tree": {
"TreeCommon": {
"ID": [
159,
187,
252,
77,
29,
152,
33,
69,
239,
98,
143,
222,
61,
77,
227,
28,
22,
98,
16,
224
],
"ResolvedID": null
}
},
"ID": [
59,
217,
147,
244,
57,
12,
199,
119,
24,
135,
70,
207,
121,
58,
66,
89,
206,
95,
31,
213
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 (#390)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [https://git.tainton.uk/actions/conventional-commits-check-action](https://git.tainton.uk/actions/conventional-commits-check-action) | action | minor | `v1.2.4` -> `v1.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action)</summary>\n\n### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0)\n\n[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0)\n\n##### Features\n\n- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](https://git.tainton.uk/actions/conventional-commits-check-action/commit/b6d16651374e21a51c1c1113be63c775c21287fb))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/390\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "success"
},
"Statuses": [
{
"UpdatedUnix": 1761855246,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/719/jobs/0",
"Description": "Successful in 26s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1761855246,
"ID": 60421,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "f2eb2bed82a66b3840cf7e2525ce20b27b0e519b",
"CreatorID": -2
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"DiffViewStyle": "unified",
"LowerName": "luke",
"FullName": "Luke Tainton",
"Salt": "",
"LastLoginUnix": 1776964991,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"IsAdmin": true,
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"ID": 3,
"AllowImportLocal": false,
"NumTeams": 0,
"NumMembers": 0,
"KeepActivityPrivate": false,
"IsRestricted": false,
"AllowGitHook": false,
"NumFollowing": 1,
"Visibility": 1,
"IsActive": true,
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"Passwd": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
]
],
"Tree": {
"TreeCommon": {
"ID": [
40,
182,
29,
150,
86,
79,
148,
189,
250,
5,
243,
82,
227,
77,
32,
212,
61,
163,
166,
71
],
"ResolvedID": null
}
},
"ID": [
242,
235,
43,
237,
130,
166,
107,
56,
64,
207,
126,
37,
37,
206,
32,
178,
123,
14,
81,
155
],
"Author": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "Update renovate.json\n"
}
},
"Verification": {
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningEmail": "",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"Salt": "",
"IsAdmin": true,
"KeepActivityPrivate": false,
"LowerName": "luke",
"AllowCreateOrganization": false,
"MaxRepoCreation": -1,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"MustChangePassword": false,
"Description": "",
"ProhibitLogin": false,
"FullName": "Luke Tainton",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumRepos": 3,
"IsRestricted": false,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"AllowGitHook": false,
"NumTeams": 0,
"Theme": "tangerine-dream",
"CreatedUnix": 1713634307,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"ID": 3,
"LoginType": 6,
"Location": "",
"Visibility": 1,
"Email": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"Name": "luke"
}
}
}
},
{
"Status": {
"State": "failure",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"Index": 0,
"RepoID": 25,
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/0",
"Description": "Successful in 17s",
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1761469268,
"UpdatedUnix": 1761469268,
"ID": 54029,
"Index": 19,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1761469309,
"UpdatedUnix": 1761469309,
"Index": 21,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/1",
"Description": "Successful in 5s",
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"ID": 54046
},
{
"Context": "Release / Get Release ID (push)",
"UpdatedUnix": 1761469344,
"ID": 54052,
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1761469344,
"State": "success",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/2",
"Description": "Successful in 6s"
},
{
"Creator": "[*user.User]",
"CreatedUnix": 1761469378,
"Index": 23,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Failing after 1m9s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"CreatorID": -2,
"UpdatedUnix": 1761469378,
"ID": 54053,
"State": "failure",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/4",
"Context": "Release / Publish Docker Images (push)"
},
{
"ID": 54055,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/714/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"Index": 24,
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Description": "Failing after 10s",
"Creator": "[*user.User]",
"CreatedUnix": 1761469387,
"UpdatedUnix": 1761469387
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/718/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1761782537,
"UpdatedUnix": 1761782537,
"ID": 60078,
"Index": 32,
"Repo": "[*repo.Repository]",
"SHA": "e13b0de800486778fc54fe78df0c4f009a07d9b1",
"Description": "Successful in 1m9s",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"ID": 3,
"EmailNotificationsPreference": "enabled",
"MaxRepoCreation": -1,
"IsActive": true,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"Type": 0,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"Name": "luke",
"PasswdHashAlgo": "",
"Language": "en-US",
"AllowCreateOrganization": false,
"Visibility": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"LoginType": 6,
"Salt": "",
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"Passwd": "",
"MustChangePassword": false,
"LoginSource": 2,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"LowerName": "luke",
"UpdatedUnix": 1776964991,
"IsAdmin": true,
"AllowGitHook": false,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 1,
"KeepEmailPrivate": false,
"LastRepoVisibility": false,
"NumTeams": 0,
"DiffViewStyle": "unified"
},
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"ID": 5,
"KeepEmailPrivate": true,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumFollowing": 0,
"LoginType": 0,
"LoginName": "",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"DiffViewStyle": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginSource": 0,
"Language": "en-US",
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"AllowImportLocal": false,
"NumMembers": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Description": "",
"IsAdmin": false,
"NumStars": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Location": "",
"ProhibitLogin": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
109,
54,
103,
125,
185,
0,
199,
68,
86,
224,
205,
238,
91,
28,
64,
99,
13,
1,
136,
67
],
"ResolvedID": null
}
},
"ID": [
225,
59,
13,
232,
0,
72,
103,
120,
252,
84,
254,
120,
223,
12,
79,
0,
154,
7,
217,
177
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#389)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/389\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
]
]
}
}
}
},
{
"Statuses": [
{
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/0",
"Description": "Successful in 8s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"CreatorID": -2,
"CreatedUnix": 1760864454,
"UpdatedUnix": 1760864454,
"ID": 50362,
"SHA": "2240bdc031260046514a2152ba4011493f165aba"
},
{
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/1",
"Description": "Successful in 1s",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 50373,
"State": "success",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatedUnix": 1760864474,
"UpdatedUnix": 1760864474,
"Index": 19,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"CreatedUnix": 1760864527,
"UpdatedUnix": 1760864527,
"Index": 20,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 50380,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/2",
"Description": "Successful in 2s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b"
},
{
"Context": "Release / Publish Docker Images (push)",
"RepoID": 25,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760864553,
"UpdatedUnix": 1760864553,
"ID": 50382,
"Index": 21,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/4",
"Description": "Successful in 1m15s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09"
},
{
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "Failing after 50s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatedUnix": 1760864594,
"State": "failure",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"TargetURL": "/repos/pypilot/actions/runs/703/jobs/3",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760864594,
"ID": 50385
},
{
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760918507,
"ID": 50575,
"RepoID": 25,
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"Description": "Successful in 1m1s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1760918507,
"Index": 24,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"Language": "en-US",
"Description": "",
"IsActive": true,
"IsRestricted": false,
"IsAdmin": true,
"ID": 3,
"LoginName": "luke@tainton.uk",
"Location": "",
"MustChangePassword": false,
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"LastLoginUnix": 1776964991,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"NumMembers": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"Salt": "",
"AllowImportLocal": false,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"KeepEmailPrivate": false,
"LoginType": 6,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumRepos": 3,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowGitHook": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"IsActive": true,
"NumFollowers": 0,
"NumRepos": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"LoginType": 0,
"LoginName": "",
"MaxRepoCreation": -1,
"IsAdmin": false,
"IsRestricted": false,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumStars": 0,
"Visibility": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Theme": "gitea-auto",
"LoginSource": 0,
"Location": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false
},
"Commit": {
"Parents": [
[
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
]
],
"Tree": {
"TreeCommon": {
"ID": [
254,
243,
36,
142,
163,
222,
112,
187,
187,
236,
157,
22,
236,
160,
31,
39,
162,
244,
236,
236
],
"ResolvedID": null
}
},
"ID": [
34,
64,
189,
192,
49,
38,
0,
70,
81,
74,
33,
82,
186,
64,
17,
73,
63,
22,
90,
186
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency python (#382)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [python](https://github.com/actions/python-versions) | uses-with | minor | `3.13` -> `3.14` |\n| python | final | minor | `3.13-slim` -> `3.14-slim` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/python-versions (python)</summary>\n\n### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925): 3.14.0\n\n[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)\n\nPython 3.14.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/382\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
},
"Status": {
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "2240bdc031260046514a2152ba4011493f165aba",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/704/jobs/0",
"Description": "",
"CreatorID": 0,
"UpdatedUnix": 0
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5249c54e1e0fd1d1c6bd254a752e8d44caf0c93a",
"TargetURL": "/repos/pypilot/actions/runs/693/jobs/0",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1760378766,
"ID": 49433,
"Description": "Successful in 2m2s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760378766
}
],
"SignCommit": {
"UserCommit": {
"User": {
"NumFollowers": 0,
"NumRepos": 3,
"Salt": "",
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"IsRestricted": false,
"ProhibitLogin": false,
"NumMembers": 0,
"ID": 3,
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"IsActive": true,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Type": 0,
"UpdatedUnix": 1776964991,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"UseCustomAvatar": true,
"NumStars": 1,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 2,
"AllowGitHook": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginType": 6,
"Location": "",
"NumFollowing": 1,
"NumTeams": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"LowerName": "luke",
"CreatedUnix": 1713634307,
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"Description": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
62,
247,
80,
124,
183,
229,
128,
57,
154,
145,
227,
147,
52,
32,
207,
81,
37,
171,
140,
45
],
"ResolvedID": null
}
},
"ID": [
82,
73,
197,
78,
30,
15,
209,
209,
198,
189,
37,
74,
117,
46,
141,
68,
202,
240,
201,
58
],
"Author": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(ci): Remove dependencies of dependencies (#388)\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/388\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
]
]
}
},
"Verification": {
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"LowerName": "luke",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"FullName": "Luke Tainton",
"Passwd": "",
"LoginType": 6,
"Description": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"Visibility": 1,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"NumRepos": 3,
"NumTeams": 0,
"KeepActivityPrivate": false,
"IsRestricted": false,
"LoginSource": 2,
"Type": 0,
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"IsActive": true,
"UseCustomAvatar": true,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LastRepoVisibility": false,
"NumMembers": 0,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsAdmin": true,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"MustChangePassword": false,
"Location": "",
"MaxRepoCreation": -1,
"AllowGitHook": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
}
},
{
"Status": {
"Index": 0,
"RepoID": 25,
"State": "success",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0",
"Description": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1760377958,
"UpdatedUnix": 1760377958,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "92714ee04576415bac28a2a4f00eb8fe6b1ee294",
"Description": "Successful in 2m5s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"ID": 49415,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/686/jobs/0"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"LoginName": "",
"CreatedUnix": 1735676388,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"MustChangePassword": false,
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"NumTeams": 0,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"Website": "https://renovatebot.com",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"NumStars": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"Location": "",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"IsActive": true,
"NumRepos": 0,
"Name": "renovate-bot",
"Type": 0,
"MaxRepoCreation": -1,
"EmailNotificationsPreference": "disabled",
"IsAdmin": false,
"IsRestricted": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
]
],
"Tree": {
"TreeCommon": {
"ID": [
88,
190,
39,
144,
105,
200,
65,
23,
141,
112,
122,
41,
215,
29,
96,
55,
100,
121,
193,
247
],
"ResolvedID": null
}
},
"ID": [
146,
113,
78,
224,
69,
118,
65,
91,
172,
40,
162,
164,
240,
14,
184,
254,
107,
30,
226,
148
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency idna to v3.11 (#386)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [idna](https://github.com/kjd/idna) ([changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)) | `==3.10` -> `==3.11` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>kjd/idna (idna)</summary>\n\n### [`v3.11`](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n[Compare Source](https://github.com/kjd/idna/compare/v3.10...v3.11)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/386\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
},
"Verification": {
"CommittingUser": {
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"Website": "https://luke.tainton.uk",
"Description": "",
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"Visibility": 1,
"Theme": "tangerine-dream",
"Passwd": "",
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumStars": 1,
"MustChangePassword": false,
"LoginSource": 2,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"NumTeams": 0,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"NumMembers": 0,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"Type": 0,
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"LoginType": 6,
"DiffViewStyle": "unified",
"ID": 3,
"Name": "luke"
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Status": {
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"ContextHash": ""
},
"Statuses": [
{
"Creator": "[*user.User]",
"ID": 49020,
"Index": 6,
"RepoID": 25,
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"CreatorID": -2,
"CreatedUnix": 1760259760,
"UpdatedUnix": 1760259760,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/1",
"Description": "Has been skipped",
"Context": "Release / Create Release (push)"
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760259763,
"UpdatedUnix": 1760259763,
"ID": 49022,
"State": "success",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/2",
"Description": "Has been skipped",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Index": 7
},
{
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1760259765,
"Index": 8,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Failing after 1m49s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1760259765,
"ID": 49024,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"ID": 49026,
"Index": 9,
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Creator": "[*user.User]",
"CreatedUnix": 1760259766,
"UpdatedUnix": 1760259766,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/3",
"Description": "Has been skipped",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2
},
{
"Description": "Has been skipped",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 10,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"TargetURL": "/repos/pypilot/actions/runs/678/jobs/4",
"CreatedUnix": 1760259770,
"UpdatedUnix": 1760259770,
"ID": 49028,
"State": "success"
},
{
"CreatedUnix": 1760314796,
"ID": 49161,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/685/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1760314796,
"Index": 12,
"RepoID": 25,
"State": "success",
"SHA": "9b8113f2cae0887ec1281f32473d80105620008c",
"Description": "Successful in 19m12s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Location": "",
"Website": "https://renovatebot.com",
"Description": "",
"LastLoginUnix": 1768857135,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"LoginName": "",
"Type": 0,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"NumRepos": 0,
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"LoginType": 0,
"CreatedUnix": 1735676388,
"AllowImportLocal": false,
"NumMembers": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"ProhibitLogin": false,
"NumFollowing": 0,
"Theme": "gitea-auto",
"KeepActivityPrivate": false,
"ID": 5,
"MustChangePassword": false,
"LoginSource": 0
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
]
],
"Tree": {
"TreeCommon": {
"ID": [
71,
63,
1,
192,
221,
66,
155,
88,
185,
135,
226,
161,
186,
138,
4,
131,
157,
31,
74,
166
],
"ResolvedID": null
}
},
"ID": [
155,
129,
19,
242,
202,
224,
136,
126,
193,
40,
31,
50,
71,
61,
128,
16,
86,
32,
0,
140
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.5.0 (#384)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.4.0` -> `==4.5.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.5.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.5.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0)\n\n<!-- Release notes generated using configuration in .github/release.yml at main -->\n\n#### What's Changed\n\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​376](https://github.com/tox-dev/platformdirs/pull/376)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​378](https://github.com/tox-dev/platformdirs/pull/378)\n- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​379](https://github.com/tox-dev/platformdirs/pull/379)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​381](https://github.com/tox-dev/platformdirs/pull/381)\n- Add support for Python 3.14 by [@​hugovk](https://github.com/hugovk) in [#​382](https://github.com/tox-dev/platformdirs/pull/382)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​383](https://github.com/tox-dev/platformdirs/pull/383)\n- Update Windows file paths in README by [@​ParadaCarleton](https://github.com/ParadaCarleton) in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​384](https://github.com/tox-dev/platformdirs/pull/384)\n- \\[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci)\\[bot] in [#​387](https://github.com/tox-dev/platformdirs/pull/387)\n- Bump astral-sh/setup-uv from 6 to 7 in the all group by [@​dependabot](https://github.com/dependabot)\\[bot] in [#​388](https://github.com/tox-dev/platformdirs/pull/388)\n- Drop 3.9 support by [@​gaborbernat](https://github.com/gaborbernat) in [#​389](https://github.com/tox-dev/platformdirs/pull/389)\n\n#### New Contributors\n\n- [@​ParadaCarleton](https://github.com/ParadaCarleton) made their first contribution in [#​385](https://github.com/tox-dev/platformdirs/pull/385)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/384\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"Salt": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Type": 0,
"AllowGitHook": false,
"NumStars": 1,
"LoginName": "luke@tainton.uk",
"FullName": "Luke Tainton",
"AllowImportLocal": false,
"Visibility": 1,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "tangerine-dream",
"LoginSource": 2,
"ID": 3,
"Name": "luke",
"CreatedUnix": 1713634307,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"Passwd": "",
"LoginType": 6,
"LastLoginUnix": 1776964991,
"AvatarEmail": "luke@tainton.uk",
"Description": "",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"NumRepos": 3,
"Language": "en-US",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false
}
}
}
},
{
"Statuses": [
{
"ID": 48813,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"CreatorID": -2,
"UpdatedUnix": 1760181131,
"Index": 2,
"State": "failure",
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66",
"Description": "Has been cancelled",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1760181131
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"MustChangePassword": false,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsRestricted": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumRepos": 3,
"LoginSource": 2,
"Location": "",
"Salt": "",
"Description": "",
"IsActive": true,
"NumTeams": 0,
"LoginType": 6,
"Name": "luke",
"Website": "https://luke.tainton.uk",
"LastLoginUnix": 1776964991,
"Visibility": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"LoginName": "luke@tainton.uk",
"Type": 0,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"NumFollowers": 0,
"NumMembers": 0,
"ID": 3,
"AllowGitHook": false,
"NumStars": 1
},
"SigningKey": "[*asymkey.GPGKey]",
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false
},
"UserCommit": {
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
]
],
"Tree": {
"TreeCommon": {
"ID": [
27,
29,
169,
234,
15,
190,
223,
62,
143,
49,
81,
119,
29,
180,
16,
48,
193,
65,
13,
114
],
"ResolvedID": null
}
},
"ID": [
191,
220,
168,
52,
239,
135,
29,
139,
205,
139,
140,
196,
189,
159,
234,
65,
238,
201,
158,
102
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency tomli to v2.3.0 (#385)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [tomli](https://github.com/hukkin/tomli) ([changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md)) | `==2.2.1` -> `==2.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hukkin/tomli (tomli)</summary>\n\n### [`v2.3.0`](https://github.com/hukkin/tomli/blob/HEAD/CHANGELOG.md#230)\n\n[Compare Source](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0)\n\n- Added\n - Binary wheels for Python 3.14 (also free-threaded)\n- Performance\n - Reduced import time\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/385\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
},
"User": {
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsRestricted": false,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"KeepEmailPrivate": true,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ID": 5,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"LoginName": "",
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumStars": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"NumTeams": 0,
"NumMembers": 0,
"Theme": "gitea-auto",
"IsActive": true,
"LowerName": "renovate-bot",
"Location": "",
"Website": "https://renovatebot.com",
"Description": "",
"NumFollowing": 0,
"KeepActivityPrivate": false,
"LoginType": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"IsAdmin": false,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false
}
}
},
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/667/jobs/0",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bfdca834ef871d8bcd8b8cc4bd9fea41eec99e66"
}
},
{
"Statuses": [
{
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatedUnix": 1760142525,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"Description": "Successful in 27m38s",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"UpdatedUnix": 1760142525,
"ID": 48765,
"Index": 8
}
],
"SignCommit": {
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Salt": "",
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LoginType": 6,
"Location": "",
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumTeams": 0,
"Type": 0,
"LowerName": "luke",
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowing": 1,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"NumStars": 1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"Passwd": "",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"IsAdmin": true,
"MaxRepoCreation": -1,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Description": "",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"Visibility": 1,
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false
}
},
"UserCommit": {
"User": {
"DiffViewStyle": "",
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Description": "",
"LoginName": "",
"KeepEmailPrivate": true,
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowCreateOrganization": false,
"NumStars": 0,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Type": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"CreatedUnix": 1735676388,
"IsActive": true,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"IsAdmin": false,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"LastLoginUnix": 1768857135,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Language": "en-US",
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumMembers": 0,
"LowerName": "renovate-bot",
"Location": "",
"Website": "https://renovatebot.com",
"LastRepoVisibility": false,
"IsRestricted": false,
"NumTeams": 0,
"Visibility": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
169,
218,
217,
40,
104,
71,
145,
149,
198,
245,
229,
14,
217,
16,
231,
193,
194,
128,
11,
229
],
"ResolvedID": null
}
},
"ID": [
129,
0,
35,
179,
221,
53,
104,
108,
157,
229,
85,
251,
25,
75,
189,
96,
23,
96,
14,
83
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update astral-sh/setup-uv action to v7 (#383)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | action | major | `v6` -> `v7` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>\n\n### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n[Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v7)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzOS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/383\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
]
]
}
}
},
"Status": {
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/666/jobs/0",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"State": "success",
"SHA": "810023b3dd35686c9de555fb194bbd6017600e53",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0
}
},
{
"Status": {
"UpdatedUnix": 0,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"ID": 48008,
"Index": 4,
"Repo": "[*repo.Repository]",
"Description": "Successful in 24m11s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"RepoID": 25,
"State": "success",
"SHA": "5adf15cc927e114db63fab8b1fb35f3f2bf7a36f",
"TargetURL": "/repos/pypilot/actions/runs/641/jobs/0",
"CreatedUnix": 1759796682,
"UpdatedUnix": 1759796682
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumRepos": 3,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Description": "",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Name": "luke",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Salt": "",
"IsAdmin": true,
"ProhibitLogin": false,
"KeepEmailPrivate": false,
"Passwd": "",
"LoginType": 6,
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"KeepActivityPrivate": false,
"ID": 3,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Visibility": 1,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"NumFollowing": 1,
"MustChangePassword": false,
"LastRepoVisibility": false,
"IsActive": true,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Location": "",
"NumStars": 1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowGitHook": false,
"DiffViewStyle": "",
"LowerName": "renovate-bot",
"ProhibitLogin": false,
"NumRepos": 0,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"IsActive": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"LoginSource": 0,
"Location": "",
"Description": "",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumStars": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"Language": "en-US",
"IsRestricted": false,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LoginType": 0,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumMembers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"IsAdmin": false
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
112,
215,
7,
250,
219,
211,
180,
81,
141,
230,
203,
26,
91,
177,
251,
221,
168,
51,
121
],
"ResolvedID": null
}
},
"ID": [
90,
223,
21,
204,
146,
126,
17,
77,
182,
63,
171,
139,
31,
179,
95,
63,
43,
247,
163,
111
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "renovate[bot]"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#380)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/380\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"Description": "",
"ContextHash": ""
},
"Statuses": [
{
"Creator": "[*user.User]",
"Index": 4,
"TargetURL": "/repos/pypilot/actions/runs/637/jobs/0",
"Description": "Has been cancelled",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1759774356,
"UpdatedUnix": 1759774356,
"ID": 47938,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "bfb0a2dfc0404a64dbbd7f68cb34c8943178abc3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"CommittingUser": {
"AllowImportLocal": false,
"NumFollowers": 0,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Visibility": 1,
"IsActive": true,
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Email": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Language": "en-US",
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumMembers": 0,
"DiffViewStyle": "unified",
"LoginType": 6,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"IsAdmin": true,
"IsRestricted": false,
"ID": 3,
"LowerName": "luke",
"KeepEmailPrivate": false,
"PasswdHashAlgo": "",
"MustChangePassword": false,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Location": "",
"Salt": "",
"Description": "",
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"NumStars": 1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]"
},
"UserCommit": {
"User": {
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumRepos": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginType": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowGitHook": false,
"NumFollowers": 0,
"LoginSource": 0,
"Website": "https://renovatebot.com",
"IsActive": true,
"IsAdmin": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumMembers": 0,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UseCustomAvatar": true,
"NumStars": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"LoginName": "",
"Description": "",
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"FullName": "renovate[bot]",
"Language": "en-US",
"AllowImportLocal": false,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Email": "renovate-bot@git.tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"IsRestricted": false,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"CreatedUnix": 1735676388,
"Visibility": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135
},
"Commit": {
"ID": [
191,
176,
162,
223,
192,
64,
74,
100,
219,
189,
127,
104,
203,
52,
200,
148,
49,
120,
171,
195
],
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency attrs to v25.4.0 (#381)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [attrs](https://github.com/python-attrs/attrs) ([changelog](https://www.attrs.org/en/stable/changelog.html)) | `==25.3.0` -> `==25.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>python-attrs/attrs (attrs)</summary>\n\n### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06)\n\n[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0)\n\n##### Backwards-incompatible Changes\n\n- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.\n\n Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.\n If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.\n\n Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.\n\n This shouldn't be a problem for most users, unless you have a pattern like this:\n\n ```python\n @​attrs.define(kw_only=True)\n class Base:\n a: int\n b: int = attrs.field(default=1, kw_only=False)\n\n @​attrs.define\n class Subclass(Base):\n c: int\n ```\n\n Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).\n Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.\n [#​1457](https://github.com/python-attrs/attrs/issues/1457)\n\n##### Changes\n\n- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\\_only* was not specified).\n [#​1427](https://github.com/python-attrs/attrs/issues/1427)\n- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/).\n [#​1446](https://github.com/python-attrs/attrs/issues/1446),\n [#​1451](https://github.com/python-attrs/attrs/issues/1451)\n- `attrs.validators.deep_mapping()` now allows to leave out either *key\\_validator* xor *value\\_validator*.\n [#​1448](https://github.com/python-attrs/attrs/issues/1448)\n- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.\n [#​1449](https://github.com/python-attrs/attrs/issues/1449)\n- Added a new **experimental** way to inspect classes:\n\n `attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.\n\n The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.\n [#​1454](https://github.com/python-attrs/attrs/issues/1454)\n- Fixed annotations for `attrs.field(converter=...)`.\n Previously, a `tuple` of converters was only accepted if it had exactly one element.\n [#​1461](https://github.com/python-attrs/attrs/issues/1461)\n- The performance of `attrs.asdict()` has been improved by 45–260%.\n [#​1463](https://github.com/python-attrs/attrs/issues/1463)\n- The performance of `attrs.astuple()` has been improved by 49–270%.\n [#​1469](https://github.com/python-attrs/attrs/issues/1469)\n- The type annotation for `attrs.validators.or_()` now allows for different types of validators.\n\n This was only an issue on Pyright.\n [#​1474](https://github.com/python-attrs/attrs/issues/1474)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
],
"Tree": {
"TreeCommon": {
"ID": [
82,
123,
56,
178,
207,
166,
234,
42,
124,
227,
17,
225,
25,
205,
213,
160,
117,
239,
124,
123
],
"ResolvedID": null
}
}
}
}
}
},
{
"Statuses": [
{
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Description": "Successful in 21m35s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"UpdatedUnix": 1759710141,
"ID": 47839,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759710141,
"Index": 4,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Description": "",
"CreatedUnix": 1713634307,
"NumTeams": 0,
"Name": "luke",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowGitHook": false,
"DiffViewStyle": "unified",
"PasswdHashAlgo": "",
"LoginSource": 2,
"NumFollowers": 0,
"LoginName": "luke@tainton.uk",
"LastLoginUnix": 1776964991,
"IsRestricted": false,
"AllowImportLocal": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"UseCustomAvatar": true,
"Visibility": 1,
"FullName": "Luke Tainton",
"Passwd": "",
"LoginType": 6,
"Location": "",
"NumFollowing": 1,
"NumStars": 1,
"NumMembers": 0,
"ID": 3,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false
},
"SigningEmail": ""
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumStars": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Type": 0,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 0,
"LoginType": 0,
"Website": "https://renovatebot.com",
"Language": "en-US",
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"IsActive": true,
"AllowImportLocal": false,
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Location": "",
"IsRestricted": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Email": "renovate-bot@git.tainton.uk",
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"IsAdmin": false,
"UseCustomAvatar": true,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0
},
"Commit": {
"Author": {
"Name": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency certifi to v2025.10.5 (#378)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.8.3` -> `==2025.10.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.10.5`](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/378\nCo-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>\nCo-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
]
],
"Tree": {
"TreeCommon": {
"ID": [
1,
140,
118,
132,
127,
206,
47,
59,
178,
36,
114,
114,
252,
105,
232,
24,
144,
249,
44,
142
],
"ResolvedID": null
}
},
"ID": [
77,
109,
159,
68,
212,
158,
126,
128,
218,
255,
159,
93,
254,
14,
32,
50,
50,
168,
9,
106
]
}
}
},
"Status": {
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4d6d9f44d49e7e80daff9f5dfe0e203232a8096a",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/632/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0
}
},
{
"SignCommit": {
"UserCommit": {
"User": {
"IsRestricted": false,
"FullName": "renovate[bot]",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"LoginSource": 0,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"NumRepos": 0,
"Theme": "gitea-auto",
"IsAdmin": false,
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"LastLoginUnix": 1768857135,
"IsActive": true,
"Location": "",
"Language": "en-US",
"Description": "",
"MaxRepoCreation": -1,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"EmailNotificationsPreference": "disabled",
"AllowGitHook": false,
"NumFollowing": 0,
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"DiffViewStyle": ""
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
188,
198,
62,
242,
178,
189,
9,
100,
230,
40,
39,
18,
117,
218,
178,
3,
230,
110,
160,
171
]
}
},
"ID": [
130,
45,
121,
13,
4,
74,
248,
113,
187,
48,
146,
247,
87,
182,
229,
221,
83,
164,
21,
7
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.3.0 (#377)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.2.0` -> `v3.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0)\n\n##### Features\n\n- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/377\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
]
]
}
},
"Verification": {
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"Verified": false,
"CommittingUser": {
"AllowGitHook": false,
"DiffViewStyle": "unified",
"MaxRepoCreation": -1,
"LoginSource": 2,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumFollowing": 1,
"NumRepos": 3,
"Type": 0,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Language": "en-US",
"Description": "",
"UseCustomAvatar": true,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"ProhibitLogin": false,
"NumTeams": 0,
"NumMembers": 0,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"IsActive": true,
"ID": 3,
"PasswdHashAlgo": "",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Name": "luke",
"Location": "",
"IsRestricted": false,
"AllowCreateOrganization": false,
"Visibility": 1,
"FullName": "Luke Tainton",
"Passwd": "",
"CreatedUnix": 1713634307,
"IsAdmin": true
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
},
"Status": {
"Index": 0,
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "",
"Context": "",
"UpdatedUnix": 0,
"ID": 0
},
"Statuses": [
{
"CreatedUnix": 1759624495,
"UpdatedUnix": 1759624495,
"ID": 47679,
"Index": 35,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/625/jobs/0",
"Description": "Successful in 2m15s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2
},
{
"ID": 47738,
"RepoID": 25,
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/0",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1759654956,
"Index": 40,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "Successful in 1m22s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759654956
},
{
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/1",
"CreatedUnix": 1759655087,
"Repo": "[*repo.Repository]",
"Description": "Successful in 3s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1759655087,
"ID": 47749,
"Index": 42,
"RepoID": 25,
"State": "success"
},
{
"ID": 47751,
"Index": 43,
"Repo": "[*repo.Repository]",
"Description": "Failing after 5m8s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1759655396,
"RepoID": 25,
"State": "failure",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/4",
"Context": "Release / Publish Docker Images (push)",
"UpdatedUnix": 1759655396
},
{
"ID": 47752,
"Index": 44,
"RepoID": 25,
"State": "success",
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/2",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1759655401,
"UpdatedUnix": 1759655401
},
{
"State": "failure",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"Index": 45,
"Repo": "[*repo.Repository]",
"SHA": "822d790d044af871bb3092f757b6e5dd53a41507",
"TargetURL": "/repos/pypilot/actions/runs/628/jobs/3",
"Description": "Failing after 35s",
"Creator": "[*user.User]",
"CreatedUnix": 1759655442,
"UpdatedUnix": 1759655442,
"ID": 47756,
"RepoID": 25
}
]
},
{
"Status": {
"Creator": "[*user.User]",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"State": "success",
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0"
},
"Statuses": [
{
"ID": 45637,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/608/jobs/0",
"Description": "Successful in 3m38s",
"Context": "Security / snyk (push)",
"CreatedUnix": 1758521980,
"Index": 2,
"RepoID": 25,
"SHA": "5c7d4727b9cd6473e138018f79e2e231510796b3",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1758521980
}
],
"SignCommit": {
"UserCommit": {
"User": {
"LowerName": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumRepos": 0,
"Visibility": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Type": 0,
"Description": "",
"UseCustomAvatar": true,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginName": "",
"Language": "en-US",
"DiffViewStyle": "",
"Theme": "gitea-auto",
"LastRepoVisibility": false,
"IsActive": true,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"MustChangePassword": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"NumStars": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"IsAdmin": false,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumFollowing": 0,
"IsRestricted": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"AllowImportLocal": false,
"AllowCreateOrganization": false
},
"Commit": {
"ID": [
92,
125,
71,
39,
185,
205,
100,
115,
225,
56,
1,
143,
121,
226,
226,
49,
81,
7,
150,
179
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#376)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/376\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
],
"Tree": {
"TreeCommon": {
"ID": [
163,
76,
82,
94,
73,
104,
32,
102,
6,
46,
43,
2,
99,
144,
193,
72,
43,
144,
22,
109
],
"ResolvedID": null
}
}
}
},
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"TrustStatus": "",
"Verified": false,
"CommittingUser": {
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"Type": 0,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumMembers": 0,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Language": "en-US",
"MaxRepoCreation": -1,
"Passwd": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 3,
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"MustChangePassword": false,
"Name": "luke",
"KeepEmailPrivate": false,
"NumFollowing": 1,
"NumStars": 1,
"NumTeams": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"IsActive": true,
"IsAdmin": true,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"LoginType": 6,
"Location": "",
"FullName": "Luke Tainton",
"LastLoginUnix": 1776964991,
"Website": "https://luke.tainton.uk",
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"ID": 3,
"Description": "",
"LastRepoVisibility": false,
"IsRestricted": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Status": {
"Context": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"Index": 0,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"Description": ""
},
"Statuses": [
{
"Description": "Successful in 27m11s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Repo": "[*repo.Repository]",
"SHA": "f4125f342afb9701797e7fd1e6e72dd61d66e2d8",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758500849,
"UpdatedUnix": 1758500849,
"ID": 45591,
"Index": 4,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/605/jobs/0"
}
],
"SignCommit": {
"Verification": {
"SigningEmail": "",
"Warning": false,
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumMembers": 0,
"ID": 3,
"Name": "luke",
"IsAdmin": true,
"DiffViewStyle": "unified",
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"LoginSource": 2,
"UpdatedUnix": 1776964991,
"IsActive": true,
"AllowCreateOrganization": false,
"NumStars": 1,
"MaxRepoCreation": -1,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"KeepActivityPrivate": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"IsRestricted": false,
"Type": 0,
"AllowImportLocal": false,
"RepoAdminChangeTeamAccess": false,
"LowerName": "luke",
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowGitHook": false,
"ProhibitLogin": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LoginType": 6,
"NumFollowers": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"Language": "en-US"
}
},
"UserCommit": {
"User": {
"LoginType": 0,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"NumRepos": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"UpdatedUnix": 1768857135,
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepEmailPrivate": true,
"Type": 0,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumStars": 0,
"NumMembers": 0,
"Visibility": 0,
"IsRestricted": false,
"KeepActivityPrivate": false,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"IsActive": true,
"IsAdmin": false,
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Location": "",
"Description": "",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"ID": 5,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Name": "renovate-bot"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.5 (#375)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.4` -> `==3.2.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/375\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
28,
59,
171,
205,
223,
162,
110,
114,
137,
221,
55,
150,
33,
137,
37,
32,
195,
0,
72,
31
],
"ResolvedID": null
}
},
"ID": [
244,
18,
95,
52,
42,
251,
151,
1,
121,
126,
127,
209,
230,
231,
45,
214,
29,
102,
226,
216
]
}
}
}
},
{
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0
},
"Statuses": [
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1758413334,
"Index": 6,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/600/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 1758413334,
"ID": 45438,
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Failing after 8m13s"
},
{
"Description": "Successful in 1m21s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"Index": 12,
"RepoID": 25,
"Context": "Release / Tag release (push)",
"CreatorID": -2,
"CreatedUnix": 1758445332,
"UpdatedUnix": 1758445332,
"ID": 45492,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/0"
},
{
"CreatorID": -2,
"CreatedUnix": 1758445751,
"UpdatedUnix": 1758445751,
"ID": 45506,
"Index": 13,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/1",
"Description": "Successful in 5m28s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"State": "success",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"State": "success",
"Description": "Successful in 5s",
"Creator": "[*user.User]",
"CreatedUnix": 1758445771,
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/2",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"UpdatedUnix": 1758445771,
"ID": 45511,
"Index": 14,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
{
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1758445957,
"Index": 15,
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8",
"Description": "Successful in 3m2s",
"Context": "Release / Build Wheel File (push)",
"UpdatedUnix": 1758445957,
"ID": 45512,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/3"
},
{
"TargetURL": "/repos/pypilot/actions/runs/603/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 45513,
"RepoID": 25,
"Description": "Successful in 8m55s",
"CreatorID": -2,
"CreatedUnix": 1758445962,
"UpdatedUnix": 1758445962,
"Index": 16,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "070e337f00c6f205f2796fe6ab7172adfe5cc1c8"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"CommittingUser": {
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"UseCustomAvatar": true,
"NumMembers": 0,
"Visibility": 1,
"KeepActivityPrivate": false,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Name": "luke",
"PasswdHashAlgo": "",
"ProhibitLogin": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"NumStars": 1,
"LowerName": "luke",
"KeepEmailPrivate": false,
"Location": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"NumFollowers": 0,
"NumRepos": 3,
"NumTeams": 0,
"MustChangePassword": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"IsAdmin": true,
"IsRestricted": false,
"ID": 3,
"LoginType": 6,
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"Salt": "",
"Description": "",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"Language": "en-US",
"AllowGitHook": false,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"DiffViewStyle": "",
"LoginSource": 0,
"Type": 0,
"CreatedUnix": 1735676388,
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"Visibility": 0,
"KeepEmailPrivate": true,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"IsAdmin": false,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 5,
"LoginType": 0,
"Description": "",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumFollowing": 0,
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"IsActive": true,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumStars": 0,
"Name": "renovate-bot",
"MustChangePassword": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"NumMembers": 0,
"Website": "https://renovatebot.com",
"LowerName": "renovate-bot",
"FullName": "renovate[bot]",
"LoginName": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
]
],
"Tree": {
"TreeCommon": {
"ID": [
117,
182,
82,
8,
25,
164,
55,
189,
230,
91,
38,
24,
62,
28,
101,
247,
243,
119,
139,
179
],
"ResolvedID": null
}
},
"ID": [
7,
14,
51,
127,
0,
198,
242,
5,
242,
121,
111,
230,
171,
113,
114,
173,
254,
92,
193,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency black to <25.9.1,>=25.9.0 (#374)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/black (black)</summary>\n\n### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590)\n\n[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0)\n\n##### Highlights\n\n- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names\n ([#​4676](https://github.com/psf/black/issues/4676))\n\n##### Stable style\n\n- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628))\n- Fix crash while formatting expressions using the walrus operator in complex `with`\n statements ([#​4630](https://github.com/psf/black/issues/4630))\n- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635))\n- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634))\n- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646))\n- Fix crash when formatting a `\\` followed by a `\\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663))\n- Fix crash on a `\\\\r\\n` ([#​4673](https://github.com/psf/black/issues/4673))\n- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676))\n- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684))\n- Fix crash when using line ranges excluding indented single line decorated items\n ([#​4670](https://github.com/psf/black/issues/4670))\n\n##### Preview style\n\n- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still\n be formatted ([#​4552](https://github.com/psf/black/issues/4552))\n- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657))\n- Fix a bug where `string_processing` would not split f-strings directly after\n expressions ([#​4680](https://github.com/psf/black/issues/4680))\n- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699))\n- Remove parentheses around multiple exception types in `except` and `except*` without\n `as`. ([#​4720](https://github.com/psf/black/issues/4720))\n- Add `\\r` style newlines to the potential newlines to normalize file newlines both from\n and to ([#​4710](https://github.com/psf/black/issues/4710))\n\n##### Parser\n\n- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536))\n- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\n parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602))\n\n##### Performance\n\n- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734))\n\n##### Integrations\n\n- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567))\n- Enhance GitHub Action `psf/black` to read Black version from an additional section in\n pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606))\n- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686))\n\n##### Documentation\n\n- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/374\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 25,
"State": "failure",
"Description": "",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"UpdatedUnix": 0
},
"Statuses": [
{
"UpdatedUnix": 1758240548,
"Index": 4,
"Repo": "[*repo.Repository]",
"State": "failure",
"SHA": "998205c5291fec7cc22efb42aa7abfd829e5bac8",
"Description": "Failing after 8m8s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"ID": 45176,
"RepoID": 25,
"TargetURL": "/repos/pypilot/actions/runs/595/jobs/0",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758240548
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"IsActive": true,
"NumMembers": 0,
"MustChangePassword": false,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumFollowers": 0,
"EmailNotificationsPreference": "enabled",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"ID": 3,
"Email": "luke@tainton.uk",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowGitHook": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"IsAdmin": true,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"Type": 0,
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumTeams": 0,
"Visibility": 1,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Salt": "",
"Description": "",
"AllowCreateOrganization": false,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"UpdatedUnix": 1776964991,
"NumStars": 1,
"NumRepos": 3,
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk"
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"LastLoginUnix": 1768857135,
"IsActive": true,
"NumFollowers": 0,
"DiffViewStyle": "",
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"LoginType": 0,
"Location": "",
"NumRepos": 0,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"IsAdmin": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"AllowImportLocal": false,
"NumStars": 0,
"NumTeams": 0,
"NumMembers": 0,
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"LoginSource": 0,
"CreatedUnix": 1735676388,
"IsRestricted": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"LoginName": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
]
],
"Tree": {
"TreeCommon": {
"ID": [
43,
67,
240,
174,
209,
50,
112,
104,
21,
81,
93,
168,
178,
28,
183,
39,
237,
187,
104,
237
],
"ResolvedID": null
}
},
"ID": [
153,
130,
5,
197,
41,
31,
236,
124,
194,
46,
251,
66,
170,
122,
191,
216,
41,
229,
186,
200
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency click to v8.3.0 (#373)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | `==8.2.2` -> `==8.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pallets/click (click)</summary>\n\n### [`v8.3.0`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-830)\n\n[Compare Source](https://github.com/pallets/click/compare/8.2.2...8.3.0)\n\nReleased 2025-09-15\n\n- **Improved flag option handling**: Reworked the relationship between `flag_value`\n and `default` parameters for better consistency:\n\n - The `default` parameter value is now preserved as-is and passed directly\n to CLI functions (no more unexpected transformations)\n - Exception: flag options with `default=True` maintain backward compatibility\n by defaulting to their `flag_value`\n - The `default` parameter can now be any type (`bool`, `None`, etc.)\n - Fixes inconsistencies reported in: :issue:`1992` :issue:`2514` :issue:`2610`\n :issue:`3024` :pr:`3030`\n- Allow `default` to be set on `Argument` for `nargs = -1`. :issue:`2164`\n :pr:`3030`\n- Show correct auto complete value for `nargs` option in combination with flag\n option :issue:`2813`\n- Show correct auto complete value for nargs option in combination with flag option :issue:`2813`\n- Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:`2995` :pr:`3013`\n- Lazily import `shutil`. :pr:`3023`\n- Properly forward exception information to resources registered with\n `click.core.Context.with_resource()`. :issue:`2447` :pr:`3058`\n- Fix regression related to EOF handling in CliRunner. :issue:`2939`:pr:`2940`\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuOSIsInVwZGF0ZWRJblZlciI6IjQxLjExNi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/373\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"State": "success",
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2",
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"ID": 45058,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ec5246b82b86f82696af2bca46f5a8af337afcc2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1758155934,
"Index": 8,
"TargetURL": "/repos/pypilot/actions/runs/591/jobs/0",
"Description": "Successful in 38m8s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"UpdatedUnix": 1758155934
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"PasswdHashAlgo": "",
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Salt": "",
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"FullName": "Luke Tainton",
"Passwd": "",
"MustChangePassword": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"IsAdmin": true,
"UseCustomAvatar": true,
"Name": "luke",
"Type": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": false,
"LoginType": 6,
"Location": "",
"LastLoginUnix": 1776964991,
"AllowGitHook": false,
"NumMembers": 0,
"Visibility": 1,
"Theme": "tangerine-dream",
"IsRestricted": false,
"ID": 3,
"LowerName": "luke",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumStars": 1,
"Email": "luke@tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowCreateOrganization": false,
"AvatarEmail": "luke@tainton.uk",
"Language": "en-US",
"Description": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowing": 1,
"MaxRepoCreation": -1,
"NumRepos": 3,
"NumTeams": 0
},
"TrustStatus": "",
"Warning": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"Commit": {
"ID": [
236,
82,
70,
184,
43,
134,
248,
38,
150,
175,
43,
202,
70,
245,
168,
175,
51,
122,
252,
194
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v5 (#361)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | major | `v4.3.0` -> `v5.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0)\n\n#### What's Changed\n\n- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc) in [#​2226](https://github.com/actions/checkout/pull/2226)\n- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc) in [#​2238](https://github.com/actions/checkout/pull/2238)\n\n#### ⚠️ Minimum Compatible Runner Version\n\n**v2.327.1**\\\n[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)\n\nMake sure your runner is updated to this version or newer to use this release.\n\n**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/361\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
]
],
"Tree": {
"TreeCommon": {
"ID": [
205,
75,
65,
101,
46,
191,
110,
249,
90,
153,
11,
227,
142,
70,
123,
98,
38,
144,
227,
130
],
"ResolvedID": null
}
}
},
"User": {
"Visibility": 0,
"Theme": "gitea-auto",
"Type": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"Location": "",
"NumFollowing": 0,
"Description": "",
"LastLoginUnix": 1768857135,
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"LoginName": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"IsAdmin": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"NumRepos": 0,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Language": "en-US",
"LastRepoVisibility": false,
"IsActive": true,
"AllowCreateOrganization": false,
"NumStars": 0,
"LowerName": "renovate-bot",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumTeams": 0,
"NumMembers": 0
}
}
}
},
{
"Status": {
"ID": 0,
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"Context": "",
"UpdatedUnix": 0
},
"Statuses": [
{
"Creator": "[*user.User]",
"ID": 44704,
"SHA": "e262f51e7b77c07e7bc1b260756a7d3ab588a274",
"Description": "Successful in 1m25s",
"CreatorID": -2,
"CreatedUnix": 1757928268,
"UpdatedUnix": 1757928268,
"Index": 2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/585/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"LoginSource": 2,
"ProhibitLogin": false,
"NumStars": 1,
"LoginType": 6,
"Location": "",
"CreatedUnix": 1713634307,
"AllowGitHook": false,
"NumFollowing": 1,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"UpdatedUnix": 1776964991,
"IsRestricted": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"LoginName": "luke@tainton.uk",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"IsActive": true,
"Visibility": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Theme": "tangerine-dream",
"FullName": "Luke Tainton",
"Passwd": "",
"Description": "",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumTeams": 0,
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"UseCustomAvatar": true,
"ID": 3,
"MustChangePassword": false,
"Salt": "",
"IsAdmin": true,
"NumMembers": 0
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Reason": "gpg.error.not_signed_commit",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"NumFollowers": 0,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"IsAdmin": false,
"IsRestricted": false,
"AllowCreateOrganization": false,
"NumMembers": 0,
"Visibility": 0,
"DiffViewStyle": "",
"ID": 5,
"Name": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"ProhibitLogin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "disabled",
"Location": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"LoginSource": 0,
"Type": 0,
"Description": "",
"AllowImportLocal": false,
"NumStars": 0,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"KeepEmailPrivate": true,
"LoginName": "",
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumRepos": 0,
"NumTeams": 0,
"LowerName": "renovate-bot",
"UpdatedUnix": 1768857135,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/setup-python action to v6 (#369)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/setup-python](https://github.com/actions/setup-python) | action | major | `v5` -> `v6` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/setup-python (actions/setup-python)</summary>\n\n### [`v6`](https://github.com/actions/setup-python/compare/v5...v6)\n\n[Compare Source](https://github.com/actions/setup-python/compare/v5...v6)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/369\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
]
],
"Tree": {
"TreeCommon": {
"ID": [
233,
56,
47,
187,
159,
30,
71,
221,
38,
146,
162,
24,
110,
224,
79,
207,
225,
239,
83,
176
],
"ResolvedID": null
}
},
"ID": [
226,
98,
245,
30,
123,
119,
192,
126,
123,
193,
178,
96,
117,
106,
125,
58,
181,
136,
162,
116
]
}
}
}
},
{
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0
},
"Statuses": [
{
"Description": "Successful in 1m7s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"Index": 2,
"Repo": "[*repo.Repository]",
"State": "success",
"Creator": "[*user.User]",
"CreatedUnix": 1757927632,
"UpdatedUnix": 1757927632,
"ID": 44687,
"RepoID": 25,
"SHA": "0c8ed48a807e719f7ddbba12634a9d29b2096a3d",
"TargetURL": "/repos/pypilot/actions/runs/580/jobs/0"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginSource": 0,
"IsRestricted": false,
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Type": 0,
"IsAdmin": false,
"NumRepos": 0,
"NumTeams": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Location": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"NumMembers": 0,
"ID": 5,
"LoginType": 0,
"NumStars": 0,
"LowerName": "renovate-bot",
"Language": "en-US",
"MaxRepoCreation": -1,
"IsActive": true,
"FullName": "renovate[bot]",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"KeepEmailPrivate": true,
"LoginName": "",
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 0
},
"Commit": {
"CommitMessage": "chore(deps): lock file maintenance (#372)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/372\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
]
],
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
161,
250,
245,
85,
155,
92,
60,
180,
42,
83,
168,
33,
232,
47,
34,
30,
120,
205,
122,
85
]
}
},
"ID": [
12,
142,
212,
138,
128,
126,
113,
159,
125,
219,
186,
18,
99,
74,
157,
41,
178,
9,
106,
61
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
},
"Verification": {
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"PasswdHashAlgo": "",
"IsActive": true,
"IsRestricted": false,
"NumRepos": 3,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"Name": "luke",
"LoginType": 6,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"Salt": "",
"ProhibitLogin": false,
"NumFollowers": 0,
"MustChangePassword": false,
"Type": 0,
"Location": "",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"LoginName": "luke@tainton.uk",
"AllowImportLocal": false,
"NumStars": 1,
"NumTeams": 0,
"KeepActivityPrivate": false,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Visibility": 1,
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"Theme": "tangerine-dream",
"LowerName": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"LoginSource": 2,
"Description": "",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"EmailNotificationsPreference": "enabled"
},
"TrustStatus": "",
"Verified": false,
"Warning": false,
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]"
}
}
},
{
"Status": {
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79",
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"CreatorID": 0
},
"Statuses": [
{
"CreatorID": -2,
"CreatedUnix": 1757896183,
"UpdatedUnix": 1757896183,
"ID": 44637,
"Index": 4,
"RepoID": 25,
"State": "success",
"SHA": "0bd64526b21a180772b7b1f0b8f89b1196997a79",
"Description": "Successful in 29m11s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/577/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2"
}
],
"SignCommit": {
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"LoginType": 6,
"Type": 0,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"PasswdHashAlgo": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"NumStars": 1,
"NumTeams": 0,
"LastLoginUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"Location": "",
"Website": "https://luke.tainton.uk",
"Language": "en-US",
"Description": "",
"NumMembers": 0,
"Theme": "tangerine-dream",
"ID": 3,
"Salt": "",
"MaxRepoCreation": -1,
"NumRepos": 3,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"Passwd": "",
"LoginSource": 2,
"IsActive": true,
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"FullName": "Luke Tainton",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"Visibility": 1,
"DiffViewStyle": "unified",
"LowerName": "luke"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
},
"UserCommit": {
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
176,
42,
26,
51,
178,
3,
106,
22,
134,
151,
203,
207,
61,
71,
151,
126,
205,
115,
190,
130
],
"ResolvedID": null
}
},
"ID": [
11,
214,
69,
38,
178,
26,
24,
7,
114,
183,
177,
240,
184,
248,
155,
17,
150,
153,
122,
121
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "fix(deps): update dependency pyparsing to v3.2.4 (#371)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| pyparsing | `==3.2.3` -> `==3.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjQxLjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/371\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
]
]
},
"User": {
"Name": "renovate-bot",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"AllowImportLocal": false,
"NumFollowing": 0,
"NumTeams": 0,
"NumMembers": 0,
"MustChangePassword": false,
"Description": "",
"LastRepoVisibility": false,
"RepoAdminChangeTeamAccess": false,
"Website": "https://renovatebot.com",
"IsActive": true,
"IsAdmin": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginName": "",
"Location": "",
"LastLoginUnix": 1768857135,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"NumFollowers": 0,
"KeepEmailPrivate": true,
"IsRestricted": false,
"EmailNotificationsPreference": "disabled",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"MaxRepoCreation": -1,
"DiffViewStyle": "",
"ID": 5,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LoginType": 0,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"UpdatedUnix": 1768857135,
"NumStars": 0,
"KeepActivityPrivate": false
}
}
}
},
{
"Status": {
"State": "failure",
"Description": "",
"ContextHash": "",
"Context": "",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "failure",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1757810006,
"ID": 44484,
"Index": 11,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/570/jobs/0",
"Description": "Failing after 31m50s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"UpdatedUnix": 1757810006,
"RepoID": 25
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757840494,
"UpdatedUnix": 1757840494,
"Index": 16,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/0",
"Description": "Successful in 25s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"ID": 44538,
"Context": "Release / Tag release (push)"
},
{
"ID": 44553,
"RepoID": 25,
"State": "success",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/1",
"Description": "Successful in 7s",
"CreatorID": -2,
"CreatedUnix": 1757840827,
"Index": 20,
"Repo": "[*repo.Repository]",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1757840827
},
{
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"Index": 21,
"RepoID": 25,
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/4",
"CreatedUnix": 1757841248,
"UpdatedUnix": 1757841248,
"ID": 44554,
"Repo": "[*repo.Repository]",
"State": "failure",
"Description": "Failing after 7m2s"
},
{
"Repo": "[*repo.Repository]",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"UpdatedUnix": 1757841259,
"ID": 44559,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/2",
"Description": "Successful in 6s",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757841259,
"Index": 22,
"RepoID": 25
},
{
"Description": "Failing after 24s",
"CreatorID": -2,
"CreatedUnix": 1757841288,
"UpdatedUnix": 1757841288,
"Index": 23,
"Repo": "[*repo.Repository]",
"SHA": "a7ec6aec4221932ce9c56cab80f6d93da77b6e77",
"TargetURL": "/repos/pypilot/actions/runs/571/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"ID": 44560,
"RepoID": 25,
"State": "failure"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"CommittingUser": {
"NumMembers": 0,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginSource": 2,
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"CreatedUnix": 1713634307,
"IsAdmin": true,
"IsActive": true,
"UseCustomAvatar": true,
"NumRepos": 3,
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"Language": "en-US",
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"FullName": "Luke Tainton",
"PasswdHashAlgo": "",
"LastRepoVisibility": false,
"AllowGitHook": false,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"ID": 3,
"Name": "luke",
"MustChangePassword": false,
"Location": "",
"LastLoginUnix": 1776964991,
"ProhibitLogin": false,
"Visibility": 1,
"Description": "",
"AllowImportLocal": false,
"NumFollowers": 0,
"NumStars": 1,
"NumTeams": 0,
"IsRestricted": false,
"KeepEmailPrivate": false,
"Type": 0,
"Salt": ""
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"EmailNotificationsPreference": "disabled",
"LoginName": "",
"Type": 0,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"KeepActivityPrivate": false,
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"NumStars": 0,
"Theme": "gitea-auto",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"IsActive": true,
"ID": 5,
"LoginSource": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"MaxRepoCreation": -1,
"NumFollowing": 0,
"RepoAdminChangeTeamAccess": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"Language": "en-US",
"AllowGitHook": false,
"NumRepos": 0,
"NumTeams": 0,
"Visibility": 0,
"LowerName": "renovate-bot",
"IsRestricted": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumFollowers": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"CreatedUnix": 1735676388,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"NumMembers": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
70,
63,
163,
243,
201,
255,
165,
210,
209,
76,
203,
37,
91,
176,
54,
61,
161,
113,
89,
136
],
"ResolvedID": null
}
},
"ID": [
167,
236,
106,
236,
66,
33,
147,
44,
233,
197,
108,
171,
128,
246,
217,
61,
167,
123,
110,
119
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update hadolint/hadolint-action action to v3.2.0 (#368)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) | action | minor | `v3.1.0` -> `v3.2.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>\n\n### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0)\n\n[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0)\n\n##### Features\n\n- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/368\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
]
]
}
}
}
},
{
"Status": {
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0",
"Creator": "[*user.User]",
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432",
"Description": "",
"ContextHash": "",
"Context": ""
},
"Statuses": [
{
"Description": "Successful in 1m51s",
"Creator": "[*user.User]",
"UpdatedUnix": 1757422529,
"ID": 43939,
"Repo": "[*repo.Repository]",
"SHA": "0ea421235ec5270c0434a4d3f2d5a6797107a432",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"CreatedUnix": 1757422529,
"Index": 2,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/558/jobs/0"
}
],
"SignCommit": {
"UserCommit": {
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): lock file maintenance (#367)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/367\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
]
],
"Tree": {
"TreeCommon": {
"ID": [
182,
223,
228,
2,
1,
182,
134,
1,
240,
255,
148,
155,
157,
143,
29,
227,
169,
166,
32,
41
],
"ResolvedID": null
}
},
"ID": [
14,
164,
33,
35,
94,
197,
39,
12,
4,
52,
164,
211,
242,
213,
166,
121,
113,
7,
164,
50
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
}
},
"User": {
"Description": "",
"NumFollowers": 0,
"NumTeams": 0,
"IsRestricted": false,
"ID": 5,
"FullName": "renovate[bot]",
"Type": 0,
"Website": "https://renovatebot.com",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"MustChangePassword": false,
"CreatedUnix": 1735676388,
"UseCustomAvatar": true,
"NumFollowing": 0,
"NumStars": 0,
"DiffViewStyle": "",
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"LoginType": 0,
"IsActive": true,
"Theme": "gitea-auto",
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"LoginName": "",
"UpdatedUnix": 1768857135,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Visibility": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"IsAdmin": false,
"NumMembers": 0,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Language": "en-US",
"LastRepoVisibility": false,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"AvatarEmail": "renovate@git.tainton.uk",
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04"
}
},
"Verification": {
"SigningUser": "[*user.User]",
"SigningEmail": "",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"KeepActivityPrivate": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"LastLoginUnix": 1776964991,
"IsActive": true,
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"Email": "luke@tainton.uk",
"PasswdHashAlgo": "",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AllowGitHook": false,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"LowerName": "luke",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"Type": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"Passwd": "",
"Location": "",
"Salt": "",
"Description": "",
"LastRepoVisibility": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"KeepEmailPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Language": "en-US",
"ProhibitLogin": false,
"NumStars": 1,
"NumRepos": 3,
"NumTeams": 0,
"Website": "https://luke.tainton.uk",
"LoginSource": 2,
"Name": "luke",
"NumMembers": 0,
"Visibility": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream"
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false
}
}
},
{
"Status": {
"ID": 0,
"RepoID": 25,
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"Description": "",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]"
},
"Statuses": [
{
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"UpdatedUnix": 1757235700,
"RepoID": 25,
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/0",
"Description": "Successful in 44s",
"CreatorID": -2,
"CreatedUnix": 1757235700,
"ID": 43686,
"Index": 35,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b"
},
{
"Description": "Failing after 8m23s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"CreatedUnix": 1757236211,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1757236211,
"ID": 43696,
"Index": 39,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/4"
},
{
"CreatedUnix": 1757236284,
"Index": 40,
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/1",
"Description": "Successful in 9m42s",
"CreatorID": -2,
"UpdatedUnix": 1757236284,
"ID": 43697,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Creator": "[*user.User]",
"ID": 43698,
"Repo": "[*repo.Repository]",
"Context": "Release / Get Release ID (push)",
"CreatorID": -2,
"CreatedUnix": 1757236291,
"UpdatedUnix": 1757236291,
"Index": 41,
"RepoID": 25,
"State": "success",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/2",
"Description": "Successful in 6s"
},
{
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1757236345,
"UpdatedUnix": 1757236345,
"ID": 43699,
"Index": 42,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/555/jobs/3",
"Description": "Failing after 48s",
"Context": "Release / Build Wheel File (push)",
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783"
},
{
"SHA": "bd3f38c2f13e9869145cf54b8abac5a682a4e823",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1757377042,
"UpdatedUnix": 1757377042,
"ID": 43862,
"Index": 46,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/557/jobs/0",
"Description": "Successful in 16m29s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"NumFollowing": 1,
"NumTeams": 0,
"ID": 3,
"FullName": "Luke Tainton",
"LastRepoVisibility": false,
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"RepoAdminChangeTeamAccess": false,
"Email": "luke@tainton.uk",
"Language": "en-US",
"Description": "",
"AllowCreateOrganization": false,
"NumRepos": 3,
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"NumMembers": 0,
"Location": "",
"NumStars": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"LoginName": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"ProhibitLogin": false,
"UseCustomAvatar": true,
"Visibility": 1,
"KeepActivityPrivate": false,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"Website": "https://luke.tainton.uk",
"Salt": "",
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk",
"LowerName": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginType": 6,
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"IsAdmin": true,
"AllowGitHook": false,
"KeepEmailPrivate": false,
"LoginSource": 2,
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"KeepActivityPrivate": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsAdmin": false,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"LowerName": "renovate-bot",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Language": "en-US",
"UpdatedUnix": 1768857135,
"NumRepos": 0,
"DiffViewStyle": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumStars": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"FullName": "renovate[bot]",
"KeepEmailPrivate": true,
"LoginSource": 0,
"MaxRepoCreation": -1,
"NumFollowing": 0,
"Location": "",
"LastLoginUnix": 1768857135,
"IsRestricted": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"MustChangePassword": false,
"LoginName": "",
"Type": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Description": "",
"LoginType": 0,
"LastRepoVisibility": false,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumTeams": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk"
},
"Commit": {
"Parents": [
[
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
]
],
"Tree": {
"TreeCommon": {
"ID": [
111,
156,
174,
195,
238,
98,
46,
234,
188,
112,
66,
46,
136,
95,
104,
16,
216,
194,
131,
106
],
"ResolvedID": null
}
},
"ID": [
189,
63,
56,
194,
241,
62,
152,
105,
20,
92,
245,
75,
138,
186,
197,
166,
130,
164,
232,
35
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "fix(deps): update dependency platformdirs to v4.4.0 (#366)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [platformdirs](https://github.com/tox-dev/platformdirs) ([changelog](https://github.com/tox-dev/platformdirs/releases)) | `==4.3.8` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tox-dev/platformdirs (platformdirs)</summary>\n\n### [`v4.4.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0)\n\n[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0)\n\n##### What's Changed\n\n- feat: improve homebrew path detection by [@​daeho-ro](https://github.com/daeho-ro) in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n##### New Contributors\n\n- [@​daeho-ro](https://github.com/daeho-ro) made their first contribution in [#​370](https://github.com/tox-dev/platformdirs/pull/370)\n\n**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0>\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44My4yIiwidXBkYXRlZEluVmVyIjoiNDEuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/366\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]"
}
}
}
},
{
"Status": {
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d",
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"ContextHash": "",
"Context": "",
"State": "success",
"Description": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0
},
"Statuses": [
{
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"ID": 42439,
"Repo": "[*repo.Repository]",
"SHA": "cada9b58abd32639cb76e6a1be862358eb58676d",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1756339718,
"UpdatedUnix": 1756339718,
"Index": 8,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/534/jobs/0",
"Description": "Successful in 7m41s"
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"CommittingUser": {
"NumFollowers": 0,
"NumFollowing": 1,
"Theme": "tangerine-dream",
"Name": "luke",
"EmailNotificationsPreference": "enabled",
"IsActive": true,
"AllowCreateOrganization": false,
"RepoAdminChangeTeamAccess": false,
"ID": 3,
"LowerName": "luke",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"AllowGitHook": false,
"AllowImportLocal": false,
"MustChangePassword": false,
"LoginType": 6,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumStars": 1,
"NumRepos": 3,
"NumMembers": 0,
"PasswdHashAlgo": "",
"LastLoginUnix": 1776964991,
"Visibility": 1,
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Passwd": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UseCustomAvatar": true,
"NumTeams": 0,
"Type": 0,
"LastRepoVisibility": false,
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"LoginName": "luke@tainton.uk",
"Location": "",
"Salt": "",
"Language": "en-US",
"KeepEmailPrivate": false,
"Description": "",
"IsAdmin": true,
"IsRestricted": false,
"AvatarEmail": "luke@tainton.uk"
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]"
},
"UserCommit": {
"User": {
"LoginType": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowing": 0,
"NumMembers": 0,
"LoginName": "",
"UpdatedUnix": 1768857135,
"ProhibitLogin": false,
"ID": 5,
"FullName": "renovate[bot]",
"LoginSource": 0,
"Language": "en-US",
"IsRestricted": false,
"RepoAdminChangeTeamAccess": false,
"Theme": "gitea-auto",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"NumTeams": 0,
"Name": "renovate-bot",
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Visibility": 0,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Location": "",
"Website": "https://renovatebot.com",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowers": 0,
"PasswdHashAlgo": "pbkdf2$50000$50",
"LastLoginUnix": 1768857135,
"IsAdmin": false,
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumRepos": 0,
"KeepEmailPrivate": true,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Description": "",
"NumStars": 0,
"DiffViewStyle": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
113,
72,
148,
213,
189,
217,
216,
35,
120,
106,
18,
160,
71,
142,
45,
61,
11,
149,
209
],
"ResolvedID": null
}
},
"ID": [
202,
218,
155,
88,
171,
211,
38,
57,
203,
118,
230,
161,
190,
134,
35,
88,
235,
88,
103,
109
],
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#365)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/365\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"State": "failure",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Description": "",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]"
},
"Statuses": [
{
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1756026078,
"ID": 41913,
"Index": 10,
"RepoID": 25,
"Description": "Successful in 19s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Context": "Release / Tag release (push)",
"UpdatedUnix": 1756026078
},
{
"CreatorID": -2,
"CreatedUnix": 1756026116,
"ID": 41925,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Description": "Successful in 5s",
"UpdatedUnix": 1756026116,
"Index": 13,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/1",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]"
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1756026145,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/2",
"CreatorID": -2,
"CreatedUnix": 1756026145,
"ID": 41929,
"Index": 14,
"RepoID": 25,
"Description": "Successful in 5s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)"
},
{
"Context": "Release / Publish Docker Images (push)",
"CreatorID": -2,
"CreatedUnix": 1756026278,
"Repo": "[*repo.Repository]",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"Description": "Failing after 2m42s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Creator": "[*user.User]",
"UpdatedUnix": 1756026278,
"ID": 41931,
"Index": 15,
"RepoID": 25,
"State": "failure",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/4"
},
{
"Creator": "[*user.User]",
"UpdatedUnix": 1756026307,
"Repo": "[*repo.Repository]",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5",
"TargetURL": "/repos/pypilot/actions/runs/523/jobs/3",
"Description": "Failing after 29s",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"CreatedUnix": 1756026307,
"ID": 41934,
"Index": 16,
"RepoID": 25,
"State": "failure"
},
{
"TargetURL": "/repos/pypilot/actions/runs/524/jobs/0",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1756080490,
"ID": 42074,
"RepoID": 25,
"Description": "Successful in 7m12s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatedUnix": 1756080490,
"Index": 18,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "ef3e31b047476e847104206cce349d975b576cc5"
}
],
"SignCommit": {
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"CreatedUnix": 1735676388,
"AllowCreateOrganization": false,
"DiffViewStyle": "",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LoginSource": 0,
"ID": 5,
"EmailNotificationsPreference": "disabled",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"NumFollowers": 0,
"IsAdmin": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumTeams": 0,
"Visibility": 0,
"Theme": "gitea-auto",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"IsRestricted": false,
"NumStars": 0,
"KeepActivityPrivate": false,
"KeepEmailPrivate": true,
"Website": "https://renovatebot.com",
"AllowImportLocal": false,
"NumMembers": 0,
"IsActive": true,
"LowerName": "renovate-bot",
"MustChangePassword": false,
"Location": "",
"LastRepoVisibility": false,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Name": "renovate-bot",
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Language": "en-US",
"UseCustomAvatar": true,
"NumRepos": 0,
"RepoAdminChangeTeamAccess": false,
"Type": 0
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
77,
3,
220,
26,
181,
200,
226,
220,
36,
183,
196,
82,
248,
210,
135,
74,
72,
103,
131,
2
],
"ResolvedID": null
}
},
"ID": [
239,
62,
49,
176,
71,
71,
110,
132,
113,
4,
32,
108,
206,
52,
157,
151,
91,
87,
108,
197
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency lazy-object-proxy to v1.12.0 (#364)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) ([changelog](https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html)) | `==1.11.0` -> `==1.12.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ionelmc/python-lazy-object-proxy (lazy-object-proxy)</summary>\n\n### [`v1.12.0`](https://github.com/ionelmc/python-lazy-object-proxy/blob/HEAD/CHANGELOG.rst#1120-2025-08-22)\n\n[Compare Source](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0)\n\n- Fixed testing issues when C extensions are not desired.\n Contributed by Michał Górny in `#​79 <https://github.com/ionelmc/python-lazy-object-proxy/pull/79>`\\_.\n- Added support for GraalPy.\n Contributed by Michael Šimáček in `#​87 <https://github.com/ionelmc/python-lazy-object-proxy/pull/87>`\\_.\n- Fixed testing issues on Python 3.14.\n Contributed by Michał Górny in `#​88 <https://github.com/ionelmc/python-lazy-object-proxy/pull/88>`\\_.\n- Modernized packaging to have metadata in `pyproject.toml`.\n- Added Python 3.14 wheels.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS42IiwidXBkYXRlZEluVmVyIjoiNDEuODEuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/364\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
]
]
}
},
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"CommittingUser": {
"LastRepoVisibility": false,
"NumFollowers": 0,
"NumFollowing": 1,
"KeepActivityPrivate": false,
"Name": "luke",
"LoginType": 6,
"LoginSource": 2,
"Salt": "",
"MaxRepoCreation": -1,
"ProhibitLogin": false,
"NumStars": 1,
"NumRepos": 3,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Theme": "tangerine-dream",
"Language": "en-US",
"AllowImportLocal": false,
"ID": 3,
"LowerName": "luke",
"CreatedUnix": 1713634307,
"IsAdmin": true,
"AvatarEmail": "luke@tainton.uk",
"Type": 0,
"Description": "",
"IsActive": true,
"IsRestricted": false,
"AllowGitHook": false,
"NumTeams": 0,
"Email": "luke@tainton.uk",
"UpdatedUnix": 1776964991,
"Visibility": 1,
"DiffViewStyle": "unified",
"Passwd": "",
"PasswdHashAlgo": "",
"Location": "",
"Website": "https://luke.tainton.uk",
"AllowCreateOrganization": false,
"UseCustomAvatar": true,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
}
}
},
{
"Statuses": [
{
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"Description": "Successful in 7m26s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"CreatorID": -2,
"ID": 41618,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"Creator": "[*user.User]",
"CreatedUnix": 1755821309,
"UpdatedUnix": 1755821309,
"Index": 8,
"RepoID": 25,
"State": "success"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"LowerName": "luke",
"CreatedUnix": 1713634307,
"MaxRepoCreation": -1,
"AvatarEmail": "luke@tainton.uk",
"DiffViewStyle": "unified",
"LastRepoVisibility": false,
"Type": 0,
"FullName": "Luke Tainton",
"EmailNotificationsPreference": "enabled",
"Passwd": "",
"Website": "https://luke.tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"AllowImportLocal": false,
"ID": 3,
"LoginName": "luke@tainton.uk",
"IsAdmin": true,
"AllowCreateOrganization": false,
"NumFollowers": 0,
"NumFollowing": 1,
"NumTeams": 0,
"Visibility": 1,
"IsActive": true,
"Email": "luke@tainton.uk",
"MustChangePassword": false,
"LoginType": 6,
"Location": "",
"UpdatedUnix": 1776964991,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumMembers": 0,
"Description": "",
"IsRestricted": false,
"UseCustomAvatar": true,
"NumRepos": 3,
"Theme": "tangerine-dream",
"KeepEmailPrivate": false,
"Salt": "",
"AllowGitHook": false,
"NumStars": 1,
"RepoAdminChangeTeamAccess": false,
"Name": "luke",
"PasswdHashAlgo": "",
"LoginSource": 2,
"Language": "en-US",
"ProhibitLogin": false,
"KeepActivityPrivate": false
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"LoginType": 0,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"AllowGitHook": false,
"Theme": "gitea-auto",
"Email": "renovate-bot@git.tainton.uk",
"ID": 5,
"Name": "renovate-bot",
"LoginName": "",
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"UseCustomAvatar": true,
"NumTeams": 0,
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"LoginSource": 0,
"AllowImportLocal": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"DiffViewStyle": "",
"FullName": "renovate[bot]",
"IsRestricted": false,
"AvatarEmail": "renovate@git.tainton.uk",
"NumFollowing": 0,
"NumStars": 0,
"NumMembers": 0,
"MustChangePassword": false,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Description": "",
"IsAdmin": false,
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Location": "",
"Website": "https://renovatebot.com",
"MaxRepoCreation": -1,
"IsActive": true,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"Language": "en-US",
"NumFollowers": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45"
},
"Commit": {
"Tree": {
"TreeCommon": {
"ResolvedID": null,
"ID": [
44,
36,
244,
247,
15,
230,
228,
80,
118,
192,
178,
54,
211,
95,
216,
123,
118,
238,
0,
251
]
}
},
"ID": [
46,
79,
87,
237,
120,
112,
162,
102,
153,
185,
245,
188,
24,
204,
13,
183,
95,
61,
36,
76
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update dependency requests to v2.32.5 (#363)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [requests](https://requests.readthedocs.io) ([source](https://github.com/psf/requests), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | `==2.32.4` -> `==2.32.5` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>psf/requests (requests)</summary>\n\n### [`v2.32.5`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2325-2025-08-18)\n\n[Compare Source](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)\n\n**Bugfixes**\n\n- The SSLContext caching feature originally introduced in 2.32.0 has created\n a new class of issues in Requests that have had negative impact across a number\n of use cases. The Requests team has decided to revert this feature as long term\n maintenance of it is proving to be unsustainable in its current iteration.\n\n**Deprecations**\n\n- Added support for Python 3.14.\n- Dropped support for Python 3.8 following its end of support.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43Ni4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/363\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
]
]
}
}
},
"Status": {
"State": "success",
"Context": "",
"UpdatedUnix": 0,
"SHA": "2e4f57ed7870a26699b9f5bc18cc0db75f3d244c",
"TargetURL": "/repos/pypilot/actions/runs/513/jobs/0",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"CreatedUnix": 0,
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]"
}
},
{
"Status": {
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"Description": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"ContextHash": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0
},
"Statuses": [
{
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1755421336,
"Index": 16,
"RepoID": 25,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/0",
"Description": "Successful in 54s",
"Context": "Release / Tag release (push)",
"CreatedUnix": 1755421336,
"ID": 41041,
"Repo": "[*repo.Repository]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8"
},
{
"Context": "Release / Create Release (push)",
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"Creator": "[*user.User]",
"CreatedUnix": 1755421376,
"UpdatedUnix": 1755421376,
"ID": 41053,
"Index": 19,
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/1",
"Description": "Successful in 11s"
},
{
"UpdatedUnix": 1755421409,
"Index": 20,
"RepoID": 25,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/2",
"Description": "Successful in 10s",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755421409,
"ID": 41057,
"Repo": "[*repo.Repository]",
"State": "success",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"Context": "Release / Get Release ID (push)"
},
{
"UpdatedUnix": 1755421729,
"ID": 41064,
"Index": 21,
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/4",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1755421729,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"Description": "Successful in 5m59s",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)"
},
{
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"CreatorID": -2,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"TargetURL": "/repos/pypilot/actions/runs/501/jobs/3",
"Description": "Successful in 1m12s",
"Context": "Release / Build Wheel File (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1755421734,
"UpdatedUnix": 1755421734,
"ID": 41065,
"Index": 22,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success"
},
{
"CreatorID": -2,
"CreatedUnix": 1755562244,
"ID": 41250,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/505/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"UpdatedUnix": 1755562244,
"Index": 26,
"SHA": "1c9d3f9ef9cb5505db0a661f4901919f9f3b20f8",
"Description": "Successful in 9m31s",
"Creator": "[*user.User]"
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"CommittingUser": {
"ProhibitLogin": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Type": 0,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"UpdatedUnix": 1776964991,
"UseCustomAvatar": true,
"RepoAdminChangeTeamAccess": false,
"Salt": "",
"IsAdmin": true,
"AllowGitHook": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowing": 1,
"Passwd": "",
"MustChangePassword": false,
"LoginType": 6,
"CreatedUnix": 1713634307,
"AllowCreateOrganization": false,
"NumStars": 1,
"NumTeams": 0,
"Visibility": 1,
"Email": "luke@tainton.uk",
"KeepEmailPrivate": false,
"Website": "https://luke.tainton.uk",
"IsActive": true,
"AllowImportLocal": false,
"EmailNotificationsPreference": "enabled",
"PasswdHashAlgo": "",
"LoginName": "luke@tainton.uk",
"Description": "",
"LastLoginUnix": 1776964991,
"Theme": "tangerine-dream",
"ID": 3,
"Name": "luke",
"LoginSource": 2,
"Location": "",
"Language": "en-US",
"IsRestricted": false,
"NumFollowers": 0,
"NumRepos": 3,
"LastRepoVisibility": false,
"MaxRepoCreation": -1
},
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumTeams": 0,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"Language": "en-US",
"NumRepos": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"NumFollowing": 0,
"ID": 5,
"LoginType": 0,
"IsAdmin": false,
"UseCustomAvatar": true,
"NumStars": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"AllowCreateOrganization": false,
"AvatarEmail": "renovate@git.tainton.uk",
"DiffViewStyle": "",
"MustChangePassword": false,
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"IsActive": true,
"Type": 0,
"LowerName": "renovate-bot",
"Name": "renovate-bot",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"LoginSource": 0,
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Website": "https://renovatebot.com",
"Description": ""
},
"Commit": {
"Signature": "[*git.CommitSignature]",
"Parents": [
[
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
],
"Tree": {
"TreeCommon": {
"ID": [
181,
248,
58,
41,
23,
84,
159,
79,
138,
197,
166,
162,
191,
225,
128,
125,
199,
230,
238,
28
],
"ResolvedID": null
}
},
"ID": [
28,
157,
63,
158,
249,
203,
85,
5,
219,
10,
102,
31,
73,
1,
145,
159,
159,
59,
32,
248
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "chore(deps): update actions/checkout action to v4.3.0 (#360)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/checkout](https://github.com/actions/checkout) | action | minor | `v4.2.2` -> `v4.3.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>actions/checkout (actions/checkout)</summary>\n\n### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0)\n\n[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0)\n\n#### What's Changed\n\n- docs: update README.md by [@​motss](https://github.com/motss) in https://github.com/actions/checkout/pull/1971\n- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail) in https://github.com/actions/checkout/pull/1977\n- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells) in https://github.com/actions/checkout/pull/2043\n- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross) in https://github.com/actions/checkout/pull/2044\n- Update README.md by [@​nebuk89](https://github.com/nebuk89) in https://github.com/actions/checkout/pull/2194\n- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang) in https://github.com/actions/checkout/pull/2224\n- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2236\n- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc) in https://github.com/actions/checkout/pull/2237\n\n#### New Contributors\n\n- [@​motss](https://github.com/motss) made their first contribution in https://github.com/actions/checkout/pull/1971\n- [@​mouismail](https://github.com/mouismail) made their first contribution in https://github.com/actions/checkout/pull/1977\n- [@​benwells](https://github.com/benwells) made their first contribution in https://github.com/actions/checkout/pull/2043\n- [@​nebuk89](https://github.com/nebuk89) made their first contribution in https://github.com/actions/checkout/pull/2194\n- [@​salmanmkc](https://github.com/salmanmkc) made their first contribution in https://github.com/actions/checkout/pull/2236\n\n**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/360\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n"
}
}
}
},
{
"Statuses": [
{
"CreatedUnix": 1755028036,
"UpdatedUnix": 1755028036,
"ID": 39583,
"Index": 2,
"RepoID": 25,
"State": "success",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Creator": "[*user.User]",
"Repo": "[*repo.Repository]",
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Description": "Successful in 1m23s",
"Context": "Security / snyk (push)",
"CreatorID": -2
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"PasswdHashAlgo": "",
"Location": "",
"Description": "",
"AllowGitHook": false,
"ProhibitLogin": false,
"NumRepos": 3,
"NumMembers": 0,
"LastLoginUnix": 1776964991,
"UseCustomAvatar": true,
"NumStars": 1,
"LastRepoVisibility": false,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"KeepActivityPrivate": false,
"MustChangePassword": false,
"LoginSource": 2,
"Salt": "",
"CreatedUnix": 1713634307,
"AllowImportLocal": false,
"AllowCreateOrganization": false,
"NumFollowing": 1,
"Type": 0,
"EmailNotificationsPreference": "enabled",
"Website": "https://luke.tainton.uk",
"IsActive": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"RepoAdminChangeTeamAccess": false,
"Passwd": "",
"LoginType": 6,
"NumTeams": 0,
"Theme": "tangerine-dream",
"IsRestricted": false,
"LowerName": "luke",
"Name": "luke",
"FullName": "Luke Tainton",
"Email": "luke@tainton.uk",
"Language": "en-US",
"Visibility": 1,
"ID": 3
},
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"Name": "renovate-bot",
"KeepEmailPrivate": true,
"EmailNotificationsPreference": "disabled",
"Website": "https://renovatebot.com",
"IsActive": true,
"AvatarEmail": "renovate@git.tainton.uk",
"Visibility": 0,
"IsAdmin": false,
"IsRestricted": false,
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginName": "",
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumFollowers": 0,
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"MaxRepoCreation": -1,
"AllowCreateOrganization": false,
"NumFollowing": 0,
"NumRepos": 0,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"MustChangePassword": false,
"Location": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"LastRepoVisibility": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"KeepActivityPrivate": false,
"Type": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Description": "",
"LastLoginUnix": 1768857135,
"NumMembers": 0,
"LowerName": "renovate-bot",
"LoginSource": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"NumStars": 0,
"AllowGitHook": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"Theme": "gitea-auto"
},
"Commit": {
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
},
"Committer": {
"Email": "luke@tainton.uk",
"When": {},
"Name": "Luke Tainton"
},
"CommitMessage": "chore(deps): lock file maintenance (#359)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/359\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
]
],
"Tree": {
"TreeCommon": {
"ID": [
168,
113,
206,
7,
148,
192,
103,
36,
23,
14,
217,
108,
83,
99,
166,
81,
142,
241,
25,
215
],
"ResolvedID": null
}
},
"ID": [
37,
174,
82,
179,
210,
108,
29,
197,
183,
107,
135,
112,
163,
95,
1,
253,
50,
213,
76,
110
]
}
}
},
"Status": {
"State": "success",
"Description": "",
"ContextHash": "",
"Context": "",
"CreatedUnix": 0,
"RepoID": 25,
"SHA": "25ae52b3d26c1dc5b76b8770a35f01fd32d54c6e",
"TargetURL": "/repos/pypilot/actions/runs/490/jobs/0",
"Creator": "[*user.User]",
"CreatorID": 0,
"UpdatedUnix": 0,
"ID": 0,
"Index": 0,
"Repo": "[*repo.Repository]"
}
},
{
"Status": {
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"ID": 0,
"Index": 0,
"State": "success",
"SHA": "606db5050913568178b87b211f2027d063781449",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"Description": ""
},
"Statuses": [
{
"State": "success",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1755027818,
"UpdatedUnix": 1755027818,
"ID": 39575,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"SHA": "606db5050913568178b87b211f2027d063781449",
"TargetURL": "/repos/pypilot/actions/runs/489/jobs/0",
"Description": "Successful in 1m21s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatorID": -2,
"Index": 2
}
],
"SignCommit": {
"Verification": {
"TrustStatus": "",
"CommittingUser": {
"AvatarEmail": "luke@tainton.uk",
"NumRepos": 3,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"Passwd": "",
"LoginType": 6,
"Language": "en-US",
"NumFollowers": 0,
"NumMembers": 0,
"Location": "",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"CreatedUnix": 1713634307,
"UpdatedUnix": 1776964991,
"MaxRepoCreation": -1,
"IsAdmin": true,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"PasswdHashAlgo": "",
"IsRestricted": false,
"NumStars": 1,
"ID": 3,
"LowerName": "luke",
"Email": "luke@tainton.uk",
"LoginName": "luke@tainton.uk",
"Website": "https://luke.tainton.uk",
"Salt": "",
"LastRepoVisibility": false,
"NumFollowing": 1,
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"AllowGitHook": false,
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumTeams": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "unified",
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Name": "luke",
"MustChangePassword": false,
"LoginSource": 2,
"IsActive": true,
"Visibility": 1,
"EmailNotificationsPreference": "enabled",
"Type": 0,
"Description": "",
"ProhibitLogin": false
},
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"SigningUser": "[*user.User]",
"SigningKey": "[*asymkey.GPGKey]"
},
"UserCommit": {
"User": {
"NumRepos": 0,
"IsRestricted": false,
"Name": "renovate-bot",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"CreatedUnix": 1735676388,
"ProhibitLogin": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumStars": 0,
"LowerName": "renovate-bot",
"KeepEmailPrivate": true,
"IsActive": true,
"NumTeams": 0,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"EmailNotificationsPreference": "disabled",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"PasswdHashAlgo": "pbkdf2$50000$50",
"MaxRepoCreation": -1,
"AllowGitHook": false,
"Visibility": 0,
"KeepActivityPrivate": false,
"MustChangePassword": false,
"Type": 0,
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"NumFollowing": 0,
"ID": 5,
"FullName": "renovate[bot]",
"Email": "renovate-bot@git.tainton.uk",
"LoginType": 0,
"LoginName": "",
"AvatarEmail": "renovate@git.tainton.uk",
"UseCustomAvatar": true,
"Website": "https://renovatebot.com",
"Description": "",
"UpdatedUnix": 1768857135,
"LastLoginUnix": 1768857135,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"LoginSource": 0,
"Location": "",
"IsAdmin": false,
"AllowImportLocal": false
},
"Commit": {
"Tree": {
"TreeCommon": {
"ID": [
252,
35,
3,
134,
242,
176,
9,
40,
217,
43,
206,
2,
102,
196,
245,
51,
192,
219,
1,
194
],
"ResolvedID": null
}
},
"ID": [
96,
109,
181,
5,
9,
19,
86,
129,
120,
184,
123,
33,
31,
32,
39,
208,
99,
120,
20,
73
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency wrapt to v1.17.3 (#362)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) ([changelog](https://wrapt.readthedocs.io/en/latest/changes.html)) | `==1.17.2` -> `==1.17.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>GrahamDumpleton/wrapt (wrapt)</summary>\n\n### [`v1.17.3`](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n[Compare Source](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/362\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
]
]
}
}
}
},
{
"Statuses": [
{
"RepoID": 25,
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/0",
"Description": "Successful in 29s",
"ContextHash": "24ef468db0f1a7a16cbe1eb070c6ef1b23ad276b",
"CreatedUnix": 1754816460,
"ID": 39105,
"Repo": "[*repo.Repository]",
"State": "success",
"Context": "Release / Tag release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1754816460,
"Index": 6
},
{
"UpdatedUnix": 1754816505,
"ID": 39118,
"Index": 11,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/1",
"Description": "Successful in 8s",
"ContextHash": "82be4352561b1e46ad456ab88c2b77f3eb071580",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"Context": "Release / Create Release (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754816505
},
{
"Index": 12,
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/2",
"Description": "Successful in 8s",
"ContextHash": "24e4a700275b385f85c0a036ce6a7f6bed89c05b",
"CreatorID": -2,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"Context": "Release / Get Release ID (push)",
"Creator": "[*user.User]",
"CreatedUnix": 1754816534,
"UpdatedUnix": 1754816534,
"ID": 39123
},
{
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/4",
"ContextHash": "7b5e0d976c189d12cf2864b80d6e6a33856f0a09",
"Context": "Release / Publish Docker Images (push)",
"Creator": "[*user.User]",
"ID": 39131,
"Index": 13,
"Description": "Successful in 4m29s",
"CreatorID": -2,
"CreatedUnix": 1754816773,
"UpdatedUnix": 1754816773
},
{
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"Description": "Successful in 1m3s",
"Context": "Release / Build Wheel File (push)",
"CreatorID": -2,
"UpdatedUnix": 1754816788,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/478/jobs/3",
"ContextHash": "29fa096a39e67aadf50ce8753d1e64cd7baa1783",
"Creator": "[*user.User]",
"CreatedUnix": 1754816788,
"ID": 39132,
"Index": 14,
"RepoID": 25
},
{
"State": "success",
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"UpdatedUnix": 1754957350,
"Description": "Successful in 8m31s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"CreatedUnix": 1754957350,
"ID": 39389,
"Index": 18,
"RepoID": 25,
"Repo": "[*repo.Repository]"
}
],
"SignCommit": {
"Verification": {
"Verified": false,
"SigningUser": "[*user.User]",
"SigningEmail": "",
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit",
"CommittingUser": {
"UpdatedUnix": 1776964991,
"NumFollowers": 0,
"NumStars": 1,
"Visibility": 1,
"IsAdmin": true,
"NumMembers": 0,
"MaxRepoCreation": -1,
"AllowImportLocal": false,
"ProhibitLogin": false,
"NumRepos": 3,
"LowerName": "luke",
"LoginSource": 2,
"Type": 0,
"Location": "",
"AllowGitHook": false,
"UseCustomAvatar": true,
"NumFollowing": 1,
"NumTeams": 0,
"Name": "luke",
"FullName": "Luke Tainton",
"KeepEmailPrivate": false,
"MustChangePassword": false,
"LoginName": "luke@tainton.uk",
"LastRepoVisibility": false,
"IsActive": true,
"RepoAdminChangeTeamAccess": false,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"LastLoginUnix": 1776964991,
"AllowCreateOrganization": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"DiffViewStyle": "unified",
"Email": "luke@tainton.uk",
"Description": "",
"AvatarEmail": "luke@tainton.uk",
"Passwd": "",
"PasswdHashAlgo": "",
"LoginType": 6,
"Salt": "",
"Language": "en-US",
"IsRestricted": false,
"Theme": "tangerine-dream",
"KeepActivityPrivate": false,
"ID": 3,
"EmailNotificationsPreference": "enabled",
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7"
}
},
"UserCommit": {
"User": {
"FullName": "renovate[bot]",
"PasswdHashAlgo": "pbkdf2$50000$50",
"UpdatedUnix": 1768857135,
"AllowGitHook": false,
"NumStars": 0,
"NumMembers": 0,
"Name": "renovate-bot",
"LoginType": 0,
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"Type": 0,
"Website": "https://renovatebot.com",
"CreatedUnix": 1735676388,
"IsRestricted": false,
"UseCustomAvatar": true,
"DiffViewStyle": "",
"ID": 5,
"KeepEmailPrivate": true,
"LoginSource": 0,
"AllowCreateOrganization": false,
"Theme": "gitea-auto",
"IsActive": true,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumRepos": 0,
"Visibility": 0,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Location": "",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"Language": "en-US",
"LastRepoVisibility": false,
"IsAdmin": false,
"NumFollowers": 0,
"Email": "renovate-bot@git.tainton.uk",
"MustChangePassword": false,
"LoginName": "",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AllowImportLocal": false,
"NumFollowing": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "disabled",
"Description": "",
"ProhibitLogin": false
},
"Commit": {
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
},
"CommitMessage": "fix(deps): update dependency charset-normalizer to v3.4.3 (#358)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) ([changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)) | `==3.4.2` -> `==3.4.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>jawah/charset_normalizer (charset-normalizer)</summary>\n\n### [`v3.4.3`](https://github.com/jawah/charset_normalizer/blob/HEAD/CHANGELOG.md#343-2025-08-09)\n\n[Compare Source](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3)\n\n##### Changed\n\n- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. ([#​595](https://github.com/jawah/charset_normalizer/issues/595)) ([#​583](https://github.com/jawah/charset_normalizer/issues/583))\n- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. ([#​391](https://github.com/jawah/charset_normalizer/issues/391))\n\n##### Added\n\n- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\n- Support for Python 3.14\n\n##### Fixed\n\n- sdist archive contained useless directories.\n- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. ([#​633](https://github.com/jawah/charset_normalizer/issues/633))\n\n##### Misc\n\n- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\n Each published wheel comes with its SBOM. We choose CycloneDX as the format.\n- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC4yIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/358\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
]
],
"Tree": {
"TreeCommon": {
"ID": [
173,
38,
234,
111,
189,
233,
242,
117,
101,
31,
155,
75,
4,
216,
224,
48,
242,
198,
171,
210
],
"ResolvedID": null
}
},
"ID": [
74,
180,
56,
23,
22,
82,
200,
174,
107,
38,
52,
58,
245,
27,
88,
54,
29,
220,
197,
216
],
"Author": {
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk",
"When": {}
}
}
}
},
"Status": {
"TargetURL": "/repos/pypilot/actions/runs/486/jobs/0",
"Description": "",
"CreatedUnix": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"SHA": "4ab438171652c8ae6b26343af51b58361ddcc5d8",
"ContextHash": "",
"Context": "",
"Creator": "[*user.User]",
"CreatorID": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"State": "success"
}
},
{
"Status": {
"ID": 0,
"Index": 0,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"Description": "",
"ContextHash": "",
"Creator": "[*user.User]",
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"Context": "",
"CreatorID": 0,
"CreatedUnix": 0,
"UpdatedUnix": 0
},
"Statuses": [
{
"Index": 4,
"RepoID": 25,
"State": "success",
"SHA": "94b3e8558c65fa833bea9da4633a631eceedb789",
"TargetURL": "/repos/pypilot/actions/runs/473/jobs/0",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"CreatedUnix": 1754697938,
"ID": 38929,
"Repo": "[*repo.Repository]",
"Description": "Successful in 4m58s",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"UpdatedUnix": 1754697938
}
],
"SignCommit": {
"Verification": {
"Warning": false,
"SigningUser": "[*user.User]",
"CommittingUser": {
"Salt": "",
"Language": "en-US",
"CreatedUnix": 1713634307,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"LastLoginUnix": 1776964991,
"NumFollowing": 1,
"NumRepos": 3,
"NumTeams": 0,
"Theme": "tangerine-dream",
"PasswdHashAlgo": "",
"MaxRepoCreation": -1,
"IsActive": true,
"IsAdmin": true,
"AllowCreateOrganization": false,
"MustChangePassword": false,
"Location": "",
"UpdatedUnix": 1776964991,
"Visibility": 1,
"RepoAdminChangeTeamAccess": false,
"KeepActivityPrivate": false,
"Description": "",
"AllowGitHook": false,
"AllowImportLocal": false,
"ProhibitLogin": false,
"ID": 3,
"KeepEmailPrivate": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumFollowers": 0,
"DiffViewStyle": "unified",
"EmailNotificationsPreference": "enabled",
"LoginSource": 2,
"Website": "https://luke.tainton.uk",
"LastRepoVisibility": false,
"AvatarEmail": "luke@tainton.uk",
"NumMembers": 0,
"Name": "luke",
"Email": "luke@tainton.uk",
"LoginType": 6,
"LoginName": "luke@tainton.uk",
"UseCustomAvatar": true,
"NumStars": 1,
"IsRestricted": false,
"LowerName": "luke",
"FullName": "Luke Tainton",
"Passwd": "",
"Type": 0
},
"SigningKey": "[*asymkey.GPGKey]",
"SigningSSHKey": "[*asymkey.PublicKey]",
"Verified": false,
"Reason": "gpg.error.not_signed_commit",
"SigningEmail": "",
"TrustStatus": ""
},
"UserCommit": {
"User": {
"CreatedUnix": 1735676388,
"UpdatedUnix": 1768857135,
"LastRepoVisibility": false,
"IsRestricted": false,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"MustChangePassword": false,
"Description": "",
"LastLoginUnix": 1768857135,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"UseCustomAvatar": true,
"NumRepos": 0,
"LowerName": "renovate-bot",
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"IsActive": true,
"NumFollowing": 0,
"NumTeams": 0,
"Theme": "gitea-auto",
"KeepEmailPrivate": true,
"NumFollowers": 0,
"LoginSource": 0,
"IsAdmin": false,
"AllowCreateOrganization": false,
"ProhibitLogin": false,
"NumMembers": 0,
"Visibility": 0,
"KeepActivityPrivate": false,
"Name": "renovate-bot",
"FullName": "renovate[bot]",
"AllowImportLocal": false,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginName": "",
"Location": "",
"DiffViewStyle": "",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Type": 0,
"Language": "en-US",
"MaxRepoCreation": -1,
"AvatarEmail": "renovate@git.tainton.uk",
"RepoAdminChangeTeamAccess": false,
"LoginType": 0,
"Website": "https://renovatebot.com"
},
"Commit": {
"Author": {
"Email": "renovate-bot@git.tainton.uk",
"When": {},
"Name": "Renovate [BOT]"
},
"Committer": {
"When": {},
"Name": "Luke Tainton",
"Email": "luke@tainton.uk"
},
"CommitMessage": "chore(deps): lock file maintenance (#357)\n\nThis PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n🔧 This Pull Request updates lock files to use the latest dependency versions.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on monday\" (UTC), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/357\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
]
],
"Tree": {
"TreeCommon": {
"ID": [
191,
248,
238,
5,
150,
100,
198,
234,
222,
114,
114,
201,
159,
35,
106,
112,
135,
152,
194,
184
],
"ResolvedID": null
}
},
"ID": [
148,
179,
232,
85,
140,
101,
250,
131,
59,
234,
157,
164,
99,
58,
99,
30,
206,
237,
183,
137
]
}
}
}
},
{
"Status": {
"Description": "",
"Context": "",
"CreatorID": 0,
"UpdatedUnix": 0,
"Index": 0,
"RepoID": 25,
"State": "success",
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"ContextHash": "",
"Creator": "[*user.User]",
"CreatedUnix": 0,
"ID": 0,
"Repo": "[*repo.Repository]",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0"
},
"Statuses": [
{
"Index": 12,
"SHA": "922c3931ed969e1b910082fbe4a840e2c042bd2a",
"Description": "Successful in 6m59s",
"ContextHash": "583178e78bb15074414963480678a09b0d22f0c2",
"Context": "Security / snyk (push)",
"Creator": "[*user.User]",
"CreatorID": -2,
"ID": 38810,
"RepoID": 25,
"Repo": "[*repo.Repository]",
"State": "success",
"TargetURL": "/repos/pypilot/actions/runs/471/jobs/0",
"CreatedUnix": 1754611653,
"UpdatedUnix": 1754611653
}
],
"SignCommit": {
"UserCommit": {
"User": {
"Language": "en-US",
"Description": "",
"LastLoginUnix": 1768857135,
"MaxRepoCreation": -1,
"LowerName": "renovate-bot",
"LastRepoVisibility": false,
"IsRestricted": false,
"ProhibitLogin": false,
"RepoAdminChangeTeamAccess": false,
"DiffViewStyle": "",
"Theme": "gitea-auto",
"Name": "renovate-bot",
"MustChangePassword": false,
"Website": "https://renovatebot.com",
"AllowCreateOrganization": false,
"LoginName": "",
"CreatedUnix": 1735676388,
"IsAdmin": false,
"NumFollowing": 0,
"KeepEmailPrivate": true,
"LoginType": 0,
"Type": 0,
"AllowGitHook": false,
"Avatar": "71e46160bec7e78fba4bc0b521e8dbf55c45558aa108e4fd2382c12c613294a3",
"NumFollowers": 0,
"NumRepos": 0,
"Visibility": 0,
"FullName": "renovate[bot]",
"Salt": "bed6cf816eb76d0dcb433323a7ae4fe9",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"NumStars": 0,
"EmailNotificationsPreference": "disabled",
"PasswdHashAlgo": "pbkdf2$50000$50",
"Rands": "56f6f4fdb680542cfa094de9c7b59e04",
"AvatarEmail": "renovate@git.tainton.uk",
"KeepActivityPrivate": false,
"Passwd": "b9eb2a7ecba6d3325a94477bfaa03b36232f89ecd9f038769f936fe64ee25b9dd3bf28e8393b9d84db571f42027126c86a45",
"UpdatedUnix": 1768857135,
"IsActive": true,
"NumTeams": 0,
"NumMembers": 0,
"ID": 5,
"Email": "renovate-bot@git.tainton.uk",
"LoginSource": 0,
"Location": ""
},
"Commit": {
"CommitMessage": "fix(deps): update dependency certifi to v2025.8.3 (#356)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n| [certifi](https://github.com/certifi/python-certifi) | `==2025.7.14` -> `==2025.8.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n<details>\n<summary>certifi/python-certifi (certifi)</summary>\n\n### [`v2025.8.3`](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n[Compare Source](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->\n\nReviewed-on: https://git.tainton.uk/repos/pypilot/pulls/356\nCo-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\nCo-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk>\n",
"Signature": "[*git.CommitSignature]",
"Parents": [
[
76,
248,
71,
231,
9,
61,
64,
1,
109,
198,
220,
147,
9,
110,
97,
136,
109,
162,
27,
172
]
],
"Tree": {
"TreeCommon": {
"ID": [
104,
255,
121,
156,
108,
235,
30,
68,
112,
87,
74,
175,
22,
214,
255,
28,
149,
116,
235,
168
],
"ResolvedID": null
}
},
"ID": [
146,
44,
57,
49,
237,
150,
158,
27,
145,
0,
130,
251,
228,
168,
64,
226,
192,
66,
189,
42
],
"Author": {
"When": {},
"Name": "Renovate [BOT]",
"Email": "renovate-bot@git.tainton.uk"
},
"Committer": {
"Name": "Luke Tainton",
"Email": "luke@tainton.uk",
"When": {}
}
}
},
"Verification": {
"SigningUser": "[*user.User]",
"CommittingUser": {
"FullName": "Luke Tainton",
"LoginSource": 2,
"Language": "en-US",
"IsActive": true,
"NumStars": 1,
"DiffViewStyle": "unified",
"Theme": "tangerine-dream",
"IsRestricted": false,
"Location": "",
"Salt": "",
"UpdatedUnix": 1776964991,
"LastRepoVisibility": false,
"AllowCreateOrganization": false,
"Name": "luke",
"Passwd": "",
"PasswdHashAlgo": "",
"Type": 0,
"NumFollowing": 1,
"Email": "luke@tainton.uk",
"AllowGitHook": false,
"ProhibitLogin": false,
"Avatar": "c1ba5f3f2365df885d0b3ddf459ba653f8973041c60ddd33b69055f711b8d07f",
"NumRepos": 3,
"NumMembers": 0,
"RepoAdminChangeTeamAccess": false,
"Rands": "cc0f4fdec770310de4e7aaffc150b7f7",
"AllowImportLocal": false,
"UseCustomAvatar": true,
"MaxRepoCreation": -1,
"ID": 3,
"KeepEmailPrivate": false,
"LoginName": "luke@tainton.uk",
"Description": "",
"Visibility": 1,
"LowerName": "luke",
"LoginType": 6,
"Website": "https://luke.tainton.uk",
"CreatedUnix": 1713634307,
"AvatarEmail": "luke@tainton.uk",
"NumFollowers": 0,
"NumTeams": 0,
"EmailNotificationsPreference": "enabled",
"MustChangePassword": false,
"LastLoginUnix": 1776964991,
"IsAdmin": true,
"KeepActivityPrivate": false
},
"SigningKey": "[*asymkey.GPGKey]",
"Verified": false,
"SigningEmail": "",
"SigningSSHKey": "[*asymkey.PublicKey]",
"TrustStatus": "",
"Warning": false,
"Reason": "gpg.error.not_signed_commit"
}
}
}
],
"WhitespaceBehavior": "ignore-eol",
"Tags": [
"v1.27.0",
"v1.26.0",
"v1.25.0",
"v1.24.0",
"v1.23.0",
"v1.22.0",
"v1.21.0",
"v1.20.0",
"v1.19.0",
"v1.18.0",
"v1.17.0",
"v1.16.0",
"v1.15.0",
"v1.14.0",
"v1.13.0",
"v1.12.0",
"v1.11.0",
"v1.10.0",
"v1.9.0",
"v1.8.16",
"v1.8.15",
"v1.8.14",
"v1.8.13",
"v1.8.12",
"v1.8.11",
"v1.8.10",
"v1.8.9",
"v1.8.8",
"v1.8.7",
"v1.8.6",
"v1.8.5",
"v1.8.4",
"v1.8.3",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.0",
"v1.5.0",
"v1.4.0",
"v1.3.1",
"v1.3.0"
],
"UploadMaxSize": 100
}
This website requires JavaScript.
Author
SHA1
Message
Date
renovate-bot
737c4edf2b
chore(deps): update docker/metadata-action action to v6
Conventional Commit / Validate PR Title (pull_request) Successful in 4s
CI / ci (pull_request) Successful in 31s
2026-03-06 19:57:07 +00:00
renovate-bot
0c85eb5c17
chore(deps): update docker/build-push-action action to v7 ( #420 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [docker/build-push-action](https://github.com/docker/build-push-action ) | action | major | `v6` → `v7` |
---
### Release Notes
<details>
<summary>docker/build-push-action (docker/build-push-action)</summary>
### [`v7`](https://github.com/docker/build-push-action/compare/v6...v7 )
[Compare Source](https://github.com/docker/build-push-action/compare/v6...v7 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #420
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-06 19:54:18 +00:00
renovate-bot
ddb0a28d5e
chore(deps): update dependency black to <26.3.1,>=26.3.0 ( #421 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<26.1.1,>=26.1.0` → `<26.3.1,>=26.3.0` |  |  |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v26.3.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2630 )
[Compare Source](https://github.com/psf/black/compare/26.1.0...26.3.0 )
##### Stable style
- Don't double-decode input, causing non-UTF-8 files to be corrupted ([#​4964](https://github.com/psf/black/issues/4964 ))
- Fix crash on standalone comment in lambda default arguments ([#​4993](https://github.com/psf/black/issues/4993 ))
- Preserve parentheses when `# type: ignore` comments would be merged with other
comments on the same line, preventing AST equivalence failures ([#​4888](https://github.com/psf/black/issues/4888 ))
##### Preview style
- Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had
a trailing comma ([#​4884](https://github.com/psf/black/issues/4884 ))
- Fix `string_processing` crashing on unassigned long string literals with trailing
commas (one-item tuples) ([#​4929](https://github.com/psf/black/issues/4929 ))
- Simplify implementation of the power operator "hugging" logic ([#​4918](https://github.com/psf/black/issues/4918 ))
##### Packaging
- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in
frozen environments ([#​4930](https://github.com/psf/black/issues/4930 ))
##### Performance
- Introduce winloop for windows as an alternative to uvloop ([#​4996](https://github.com/psf/black/issues/4996 ))
- Remove deprecated function `uvloop.install()` in favor of `uvloop.new_event_loop()`
([#​4996](https://github.com/psf/black/issues/4996 ))
- Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to simplify loop
installation and creation of either a uvloop/winloop evenloop or default eventloop
([#​4996](https://github.com/psf/black/issues/4996 ))
##### Output
- Emit a clear warning when the target Python version is newer than the running Python
version, since AST safety checks cannot parse newer syntax. Also replace the
misleading "INTERNAL ERROR" message with an actionable error explaining the version
mismatch ([#​4983](https://github.com/psf/black/issues/4983 ))
##### *Blackd*
- Introduce winloop to be used when windows in use which enables blackd to run faster on
windows when winloop is installed. ([#​4996](https://github.com/psf/black/issues/4996 ))
##### Integrations
- Remove unused gallery script ([#​5030](https://github.com/psf/black/issues/5030 ))
- Harden parsing of `black` requirements in the GitHub Action when `use_pyproject` is
enabled so that only version specifiers are accepted and direct references such as
`black @​ https://...` are rejected. Users should upgrade to the latest version of the
action as soon as possible. This update is received automatically when using
`psf/black@stable`, and is independent of the version of Black installed by the
action. ([#​5031](https://github.com/psf/black/issues/5031 ))
##### Documentation
- Expand preview style documentation with detailed examples for `wrap_comprehension_in`,
`simplify_power_operator_hugging`, and `wrap_long_dict_values_in_parens` features
([#​4987](https://github.com/psf/black/issues/4987 ))
- Add detailed documentation for formatting Jupyter Notebooks ([#​5009](https://github.com/psf/black/issues/5009 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OC4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/421
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-06 19:49:19 +00:00
renovate-bot
f734eb8a76
fix(deps): update dependency tabulate to v0.10.0 ( #417 )
...
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [tabulate](https://github.com/astanin/python-tabulate ) | `==0.9.0` → `==0.10.0` |  |  |
---
### Release Notes
<details>
<summary>astanin/python-tabulate (tabulate)</summary>
### [`v0.10.0`](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0 )
[Compare Source](https://github.com/astanin/python-tabulate/compare/v0.9.0...v0.10.0 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41My4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #417
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 23:26:07 +00:00
renovate-bot
107ca28eaa
feat(deps): lock file maintenance ( #415 )
...
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40Ni42IiwidXBkYXRlZEluVmVyIjoiNDMuNDYuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #415
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 22:15:13 +00:00
renovate-bot
ff9c67dc20
chore(deps): update docker/login-action action to v4 ( #416 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [docker/login-action](https://github.com/docker/login-action ) | action | major | `v3` → `v4` |
---
### Release Notes
<details>
<summary>docker/login-action (docker/login-action)</summary>
### [`v4`](https://github.com/docker/login-action/compare/v3...v4 )
[Compare Source](https://github.com/docker/login-action/compare/v3...v4 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #416
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-03-04 22:11:48 +00:00
renovate-bot
bce0633d3e
feat(deps): lock file maintenance ( #414 )
...
Release / Tag release (push) Successful in 28s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m42s
Release / Get Release ID (push) Successful in 4s
Release / Build Wheel File (push) Failing after 17s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #414
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-23 22:16:57 +00:00
renovate-bot
880e51cbfa
feat(deps): lock file maintenance ( #413 )
...
Release / Tag release (push) Successful in 9s
Release / Create Release (push) Successful in 1s
Release / Get Release ID (push) Successful in 3s
Release / Publish Docker Images (push) Failing after 58s
Release / Build Wheel File (push) Failing after 14s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjkiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #413
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-02-14 14:23:03 +00:00
renovate-bot
168b51bf98
feat(deps): lock file maintenance ( #412 )
...
Release / Tag release (push) Successful in 20s
Release / Create Release (push) Successful in 7s
Release / Publish Docker Images (push) Failing after 1m30s
Release / Get Release ID (push) Successful in 7s
Release / Build Wheel File (push) Failing after 23s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi40IiwidXBkYXRlZEluVmVyIjoiNDIuOTIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #412
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-28 19:39:57 +00:00
renovate-bot
a8454098c1
chore(deps): update actions/checkout action to v6.0.2 ( #411 )
...
Release / Tag release (push) Successful in 13s
Release / Create Release (push) Successful in 2s
Release / Get Release ID (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m24s
Release / Build Wheel File (push) Failing after 13s
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-22 18:44:02 +00:00
luke
c3f2b5f9f4
chore(ci): remove Snyk security workflow and update renovate configuration ( #410 )
...
Reviewed-on: #410
2026-01-21 21:01:16 +00:00
renovate-bot
0ff1a68aee
feat(deps): lock file maintenance ( #409 )
...
Security / snyk (push) Successful in 31s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #409
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-19 20:43:20 +00:00
luke
aa310426e3
Update renovate.json
Security / snyk (push) Successful in 30s
2026-01-19 20:19:21 +00:00
renovate-bot
3f56ddea57
chore(deps): update dependency black to v26 ( #408 )
...
Security / snyk (push) Successful in 2m0s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` |  |  |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610 )
[Compare Source](https://github.com/psf/black/compare/25.12.0...26.1.0 )
##### Highlights
Introduces the 2026 stable style ([#​4892](https://github.com/psf/black/issues/4892 )), stabilizing the following changes:
- `always_one_newline_after_import`: Always force one blank line after import
statements, except when the line after the import is a comment or an import statement
([#​4489](https://github.com/psf/black/issues/4489 ))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
have been incorrectly collapsed ([#​4800](https://github.com/psf/black/issues/4800 ))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
strings if preceded by comments ([#​4764](https://github.com/psf/black/issues/4764 ))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#​4777](https://github.com/psf/black/issues/4777 ))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
([#​1879](https://github.com/psf/black/issues/1879 ))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
normalize file newlines both from and to ([#​4710](https://github.com/psf/black/issues/4710 ))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
types in `except` and `except*` without `as` ([#​4720](https://github.com/psf/black/issues/4720 ))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
side of assignments while preserving magic trailing commas and intentional multiline
formatting ([#​4865](https://github.com/psf/black/issues/4865 ))
- `standardize_type_comments`: Format type comments which have zero or more spaces
between `#` and `type:` or between `type:` and value to `# type: (value)` ([#​4645](https://github.com/psf/black/issues/4645 ))
The following change was not in any previous stable release:
- Regenerated the `_width_table.py` and added tests for the Khmer language ([#​4253](https://github.com/psf/black/issues/4253 ))
This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#​4958](https://github.com/psf/black/issues/4958 )). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:
```
exclude/
!exclude/not_this/
```
Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:
```
*/exclude/*
!*/exclude/not_this/
```
This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.
##### Output
- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#​4952](https://github.com/psf/black/issues/4952 ))
##### Integrations
- Upgraded PyPI upload workflow to use Trusted Publishing ([#​4611](https://github.com/psf/black/issues/4611 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-18 21:47:32 +00:00
renovate-bot
b37c346daf
feat(deps): lock file maintenance ( #407 )
...
Security / snyk (push) Successful in 30s
Release / Tag release (push) Successful in 16s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m10s
Release / Get Release ID (push) Successful in 1s
Release / Build Wheel File (push) Failing after 13s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43OC4xIiwidXBkYXRlZEluVmVyIjoiNDIuNzguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #407
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-13 20:07:44 +00:00
renovate-bot
c8b7d09031
feat(deps): lock file maintenance ( #406 )
...
Security / snyk (push) Successful in 46s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #406
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2026-01-05 11:18:50 +00:00
renovate-bot
5e465d8b1a
feat(deps): lock file maintenance ( #405 )
...
Release / Tag release (push) Successful in 10s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 2m0s
Release / Get Release ID (push) Failing after 45s
Release / Build Wheel File (push) Has been skipped
Security / snyk (push) Successful in 43s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42Ni4xMSIsInVwZGF0ZWRJblZlciI6IjQyLjY2LjExIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #405
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-29 12:29:02 +00:00
renovate-bot
aaa8e4fd85
feat(deps): lock file maintenance ( #404 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Failing after 58s
Release / Get Release ID (push) Successful in 1s
Release / Build Wheel File (push) Failing after 9s
Security / snyk (push) Successful in 49s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Mi44IiwidXBkYXRlZEluVmVyIjoiNDIuNTIuOCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #404
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-15 21:31:00 +00:00
renovate-bot
537aa0f406
chore(deps): update actions/cache action to v5 ( #403 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m14s
Release / Get Release ID (push) Successful in 1s
Release / Build Wheel File (push) Failing after 9s
Security / snyk (push) Successful in 32s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://github.com/actions/cache ) | action | major | `v4` -> `v5` |
---
### Release Notes
<details>
<summary>actions/cache (actions/cache)</summary>
### [`v5`](https://github.com/actions/cache/compare/v4...v5 )
[Compare Source](https://github.com/actions/cache/compare/v4...v5 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #403
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-11 21:56:08 +00:00
renovate-bot
4a40ebfd34
chore(deps): update dependency black to <25.12.1,>=25.12.0 ( #402 )
...
Security / snyk (push) Successful in 1m49s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.11.1,>=25.11.0` -> `<25.12.1,>=25.12.0` |  |  |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.12.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25120 )
[Compare Source](https://github.com/psf/black/compare/25.11.0...25.12.0 )
##### Highlights
- Black no longer supports running with Python 3.9 ([#​4842](https://github.com/psf/black/issues/4842 ))
##### Stable style
- Fix bug where comments preceding `# fmt: off`/`# fmt: on` blocks were incorrectly
removed, particularly affecting Jupytext's `# %% [markdown]` comments ([#​4845](https://github.com/psf/black/issues/4845 ))
- Fix crash when multiple `# fmt: skip` comments are used in a multi-part if-clause, on
string literals, or on dictionary entries with long lines ([#​4872](https://github.com/psf/black/issues/4872 ))
- Fix possible crash when `fmt: ` directives aren't on the top level ([#​4856](https://github.com/psf/black/issues/4856 ))
##### Preview style
- Fix `fmt: skip` skipping the line after instead of the line it's on ([#​4855](https://github.com/psf/black/issues/4855 ))
- Remove unnecessary parentheses from the left-hand side of assignments while preserving
magic trailing commas and intentional multiline formatting ([#​4865](https://github.com/psf/black/issues/4865 ))
- Fix `fix_fmt_skip_in_one_liners` crashing on `with` statements ([#​4853](https://github.com/psf/black/issues/4853 ))
- Fix `fix_fmt_skip_in_one_liners` crashing on annotated parameters ([#​4854](https://github.com/psf/black/issues/4854 ))
- Fix new lines being added after imports with `# fmt: skip` on them ([#​4894](https://github.com/psf/black/issues/4894 ))
##### Packaging
- Releases now include arm64 Windows binaries and wheels ([#​4814](https://github.com/psf/black/issues/4814 ))
##### Integrations
- Add `output-file` input to GitHub Action `psf/black` to write formatter output to a
file for artifact capture and log cleanliness ([#​4824](https://github.com/psf/black/issues/4824 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS40IiwidXBkYXRlZEluVmVyIjoiNDIuMzkuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/402
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-08 07:46:28 +00:00
renovate-bot
93f61ab3f8
feat(deps): lock file maintenance ( #401 )
...
Security / snyk (push) Successful in 29s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #401
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-08 07:45:19 +00:00
renovate-bot
26dba20357
chore(deps): update dependency pylint to v4 ( #399 )
...
Security / snyk (push) Successful in 1m38s
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/ ) | [Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
| [pylint](https://github.com/pylint-dev/pylint ) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/ )) | `<4.0.0,>=3.1.0` -> `<4.1.0,>=4.0.4` |  |  |
---
### Release Notes
<details>
<summary>pylint-dev/pylint (pylint)</summary>
### [`v4.0.4`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.4 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.3...v4.0.4 )
## What's new in Pylint 4.0.4?
Release date: 2025-11-30
## False Positives Fixed
- Fixed false positive for `invalid-name` where module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.
Closes [#​10719](https://github.com/pylint-dev/pylint/issues/10719 )
- Fix a false positive for `invalid-name` on an UPPER\_CASED name inside an `if` branch that assigns an object.
Closes [#​10745](https://github.com/pylint-dev/pylint/issues/10745 )
### [`v4.0.3`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.3 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3 )
## What's new in Pylint 4.0.3?
Release date: 2025-11-13
## False Positives Fixed
- Add Enum dunder methods `_generate_next_value_`, `_missing_`, `_numeric_repr_`, `_add_alias_`, and `_add_value_alias_` to the list passed to `--good-dunder-names`.
Closes [#​10435](https://github.com/pylint-dev/pylint/issues/10435 )
- Fixed false positive for `invalid-name` with `typing.Annotated`.
Closes [#​10696](https://github.com/pylint-dev/pylint/issues/10696 )
- Fix false positive for `f-string-without-interpolation` with template strings
when using format spec.
Closes [#​10702](https://github.com/pylint-dev/pylint/issues/10702 )
- Fix a false positive when an UPPER\_CASED class attribute was raising an
`invalid-name` when typed with `Final`.
Closes [#​10711](https://github.com/pylint-dev/pylint/issues/10711 )
- Fix a false positive for `unbalanced-tuple-unpacking` when a tuple is assigned to a function call and the structure of the function's return value is ambiguous.
Closes [#​10721](https://github.com/pylint-dev/pylint/issues/10721 )
## Other Bug Fixes
- Make 'ignore' option work as expected again.
Closes [#​10669](https://github.com/pylint-dev/pylint/issues/10669 )
- Fix crash for `consider-using-assignment-expr` when a variable annotation without assignment
is used as the `if` test expression.
Closes [#​10707](https://github.com/pylint-dev/pylint/issues/10707 )
- Fix crash for `prefer-typing-namedtuple` and `consider-math-not-float` when
a `slice` object is called.
Closes [#​10708](https://github.com/pylint-dev/pylint/issues/10708 )
### [`v4.0.2`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.2 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.2 )
## False Positives Fixed
- Fix false positive for `invalid-name` on a partially uninferable module-level constant.
Closes [#​10652](https://github.com/pylint-dev/pylint/issues/10652 )
- Fix a false positive for `invalid-name` on exclusive module-level assignments
composed of three or more branches. We won't raise `disallowed-name` on module-level names that can't be inferred
until a further refactor to remove this false negative is done.
Closes [#​10664](https://github.com/pylint-dev/pylint/issues/10664 )
- Fix false positive for `invalid-name` for `TypedDict` instances.
Closes [#​10672](https://github.com/pylint-dev/pylint/issues/10672 )
### [`v4.0.1`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.1 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v4.0.0...v4.0.1 )
## What's new in Pylint 4.0.1?
Release date: 2025-10-14
## False Positives Fixed
- Exclude `__all__` and `__future__.annotations` from `unused-variable`.
Closes [#​10019](https://github.com/pylint-dev/pylint/issues/10019 )
- Fix false-positive for `bare-name-capture-pattern` if a case guard is used.
Closes [#​10647](https://github.com/pylint-dev/pylint/issues/10647 )
- Check enums created with the `Enum()` functional syntax to pass against the
`--class-rgx` for the `invalid-name` check, like other enums.
Closes [#​10660](https://github.com/pylint-dev/pylint/issues/10660 )
### [`v4.0.0`](https://github.com/pylint-dev/pylint/releases/tag/v4.0.0 )
[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.9...v4.0.0 )
- Pylint now supports Python 3.14.
- Pylint's inference engine (`astroid`) is now much more precise,
understanding implicit booleanness and ternary expressions. (Thanks [@​zenlyj](https://github.com/zenlyj )!)
Consider this example:
```python
class Result:
errors: dict | None = None
result = Result()
if result.errors:
result.errors[field_key]
# inference engine understands result.errors cannot be None
# pylint no longer raises unsubscriptable-object
```
The required `astroid` version is now 4.0.0. See the [astroid changelog](https://pylint.readthedocs.io/projects/astroid/en/latest/changelog.html#what-s-new-in-astroid-4-0-0 ) for additional fixes, features, and performance improvements applicable to pylint.
- Handling of `invalid-name` at the module level was patchy. Now,
module-level constants that are reassigned are treated as variables and checked
against `--variable-rgx` rather than `--const-rgx`. Module-level lists,
sets, and objects can pass against either regex.
Here, `LIMIT` is reassigned, so pylint only uses `--variable-rgx`:
```python
LIMIT = 500 # [invalid-name]
if sometimes:
LIMIT = 1 # [invalid-name]
```
If this is undesired, refactor using *exclusive* assignment so that it is
evident that this assignment happens only once:
```python
if sometimes:
LIMIT = 1
else:
LIMIT = 500 # exclusive assignment: uses const regex, no warning
```
Lists, sets, and objects still pass against either `const-rgx` or `variable-rgx`
even if reassigned, but are no longer completely skipped:
```python
MY_LIST = []
my_list = []
My_List = [] # [invalid-name]
```
Remember to adjust the [regexes](https://pylint.readthedocs.io/en/latest/user_guide/messages/convention/invalid-name.html ) and [allow lists](https://pylint.readthedocs.io/en/latest/user_guide/configuration/all-options.html#good-names ) to your liking.
## Breaking Changes
- `invalid-name` now distinguishes module-level constants that are assigned only once
from those that are reassigned and now applies `--variable-rgx` to the latter. Values
other than literals (lists, sets, objects) can pass against either the constant or
variable regexes (e.g. "LOGGER" or "logger" but not "LoGgEr").
Remember that `--good-names` or `--good-names-rgxs` can be provided to explicitly
allow good names.
Closes [#​3585](https://github.com/pylint-dev/pylint/issues/3585 )
- The unused `pylintrc` argument to `PyLinter.__init__()` is deprecated
and will be removed.
Refs [#​6052](https://github.com/pylint-dev/pylint/issues/6052 )
- Commented out code blocks such as `# bar() # TODO: remove dead code` will no longer emit `fixme`.
Refs [#​9255](https://github.com/pylint-dev/pylint/issues/9255 )
- `pyreverse` `Run` was changed to no longer call `sys.exit()` in its `__init__`.
You should now call `Run(args).run()` which will return the exit code instead.
Having a class that always raised a `SystemExit` exception was considered a bug.
Normal usage of pyreverse through the CLI will not be affected by this change.
Refs [#​9689](https://github.com/pylint-dev/pylint/issues/9689 )
- The `suggestion-mode` option was removed, as pylint now always emits user-friendly hints instead
of false-positive error messages. You should remove it from your conf if it's defined.
Refs [#​9962](https://github.com/pylint-dev/pylint/issues/9962 )
- The `async.py` checker module has been renamed to `async_checker.py` since `async` is a Python keyword
and cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.
Refs [#​10071](https://github.com/pylint-dev/pylint/issues/10071 )
- The message-id of `continue-in-finally` was changed from `E0116` to `W0136`. The warning is
now emitted for every Python version since it will raise a syntax warning in Python 3.14.
See [PEP 765 - Disallow return/break/continue that exit a finally block](https://peps.python.org/pep-0765/ ).
Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480 )
- Removed support for `nmp.NaN` alias for `numpy.NaN` being recognized in ':ref:`nan-comparison`'. Use `np` or `numpy` instead.
Refs [#​10583](https://github.com/pylint-dev/pylint/issues/10583 )
- Version requirement for `isort` has been bumped to >=5.0.0.
The internal compatibility for older `isort` versions exposed via `pylint.utils.IsortDriver` has
been removed.
Refs [#​10637](https://github.com/pylint-dev/pylint/issues/10637 )
## New Features
- `comparison-of-constants` now uses the unicode from the ast instead of reformatting from
the node's values preventing some bad formatting due to `utf-8` limitation. The message now uses
`"` instead of `'` to better work with what the python ast returns.
Refs [#​8736](https://github.com/pylint-dev/pylint/issues/8736 )
- Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.
Closes [#​9045](https://github.com/pylint-dev/pylint/issues/9045 )
Closes [#​9267](https://github.com/pylint-dev/pylint/issues/9267 )
- The `fixme` check can now search through docstrings as well as comments, by using
`check-fixme-in-docstring = true` in the `[tool.pylint.miscellaneous]` section.
Closes [#​9255](https://github.com/pylint-dev/pylint/issues/9255 )
- The `use-implicit-booleaness-not-x` checks now distinguish between comparisons
used in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.
Closes [#​9353](https://github.com/pylint-dev/pylint/issues/9353 )
- The verbose option now outputs the filenames of the files that have been checked.
Previously, it only included the number of checked and skipped files.
Closes [#​9357](https://github.com/pylint-dev/pylint/issues/9357 )
- colorized reporter now colorizes messages/categories that have been configured as `fail-on` in red inverse.
This makes it easier to quickly find the errors that are causing pylint CI job failures.
Closes [#​9898](https://github.com/pylint-dev/pylint/issues/9898 )
- Enhanced support for [@​property](https://github.com/property ) decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.
Closes [#​10057](https://github.com/pylint-dev/pylint/issues/10057 )
- Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.
This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.
Refs [#​10077](https://github.com/pylint-dev/pylint/issues/10077 )
- Handle deferred evaluation of annotations in Python 3.14.
Closes [#​10149](https://github.com/pylint-dev/pylint/issues/10149 )
- Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).
Closes [#​10236](https://github.com/pylint-dev/pylint/issues/10236 )
- `pyreverse`: add support for colorized output when using output format `mmd` (MermaidJS) and `html`.
Closes [#​10242](https://github.com/pylint-dev/pylint/issues/10242 )
- pypy 3.11 is now officially supported.
Refs [#​10287](https://github.com/pylint-dev/pylint/issues/10287 )
- Add support for Python 3.14.
Refs [#​10467](https://github.com/pylint-dev/pylint/issues/10467 )
- Add naming styles for `ParamSpec` and `TypeVarTuple` that align with the `TypeVar` style.
Refs [#​10541](https://github.com/pylint-dev/pylint/issues/10541 )
## New Checks
- Add `match-statements` checker and the following message:
`bare-name-capture-pattern`.
This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.
This code is a SyntaxError at runtime.
Closes [#​7128](https://github.com/pylint-dev/pylint/issues/7128 )
- Add new check `async-context-manager-with-regular-with` to detect async context managers used with regular `with` statements instead of `async with`.
Refs [#​10408](https://github.com/pylint-dev/pylint/issues/10408 )
- Add `break-in-finally` warning. Using `break` inside the `finally` clause
will raise a syntax warning in Python 3.14.
See `PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/ >`\_.
Refs [#​10480](https://github.com/pylint-dev/pylint/issues/10480 )
- Add new checks for invalid uses of class patterns in :keyword:`match`.
- :ref:`invalid-match-args-definition` is emitted if :py:data:`object.__match_args__` isn't a tuple of strings.
- :ref:`too-many-positional-sub-patterns` if there are more positional sub-patterns than specified in :py:data:`object.__match_args__`.
- :ref:`multiple-class-sub-patterns` if there are multiple sub-patterns for the same attribute.
Refs [#​10559](https://github.com/pylint-dev/pylint/issues/10559 )
- Add additional checks for suboptimal uses of class patterns in :keyword:`match`.
- :ref:`match-class-bind-self` is emitted if a name is bound to `self` instead of
using an `as` pattern.
- :ref:`match-class-positional-attributes` is emitted if a class pattern has positional
attributes when keywords could be used.
Refs [#​10587](https://github.com/pylint-dev/pylint/issues/10587 )
- Add a `consider-math-not-float` message. `float("nan")` and `float("inf")` are slower
than their counterpart `math.inf` and `math.nan` by a factor of 4 (notwithstanding
the initial import of math) and they are also not well typed when using mypy.
This check also catches typos in float calls as a side effect.
The :ref:`pylint.extensions.code_style` need to be activated for this check to work.
Refs [#​10621](https://github.com/pylint-dev/pylint/issues/10621 )
## False Positives Fixed
- Fix a false positive for `used-before-assignment` when a variable defined under
an `if` and via a named expression (walrus operator) is used later when guarded
under the same `if` test.
Closes [#​10061](https://github.com/pylint-dev/pylint/issues/10061 )
- Fix :ref:`no-name-in-module` for members of `concurrent.futures` with Python 3.14.
Closes [#​10632](https://github.com/pylint-dev/pylint/issues/10632 )
## False Negatives Fixed
- Fix false negative for `used-before-assignment` when a `TYPE_CHECKING` import is used as a type annotation prior to erroneous usage.
Refs [#​8893](https://github.com/pylint-dev/pylint/issues/8893 )
- Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.
Refs [#​9667](https://github.com/pylint-dev/pylint/issues/9667 )
- Check module-level constants with type annotations for `invalid-name`.
Remember to adjust `const-naming-style` or `const-rgx` to your liking.
Closes [#​9770](https://github.com/pylint-dev/pylint/issues/9770 )
- Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.
Closes [#​9894](https://github.com/pylint-dev/pylint/issues/9894 )
- We now raise a `logging-too-few-args` for format string with no
interpolation arguments at all (i.e. for something like `logging.debug("Awaiting process %s")`
or `logging.debug("Awaiting process {pid}")`). Previously we did not raise for such case.
Closes [#​9999](https://github.com/pylint-dev/pylint/issues/9999 )
- Fix false negative for `used-before-assignment` when a function is defined inside a `TYPE_CHECKING` guard block and used later.
Closes [#​10028](https://github.com/pylint-dev/pylint/issues/10028 )
- Fix a false negative for `possibly-used-before-assignment` when a variable is conditionally defined
and later assigned to a type-annotated variable.
Closes [#​10421](https://github.com/pylint-dev/pylint/issues/10421 )
- Fix false negative for `deprecated-module` when a `__import__` method is used instead of `import` sentence.
Refs [#​10453](https://github.com/pylint-dev/pylint/issues/10453 )
- Count match cases for `too-many-branches` check.
Refs [#​10542](https://github.com/pylint-dev/pylint/issues/10542 )
- Fix false-negative where :ref:`unused-import` was not reported for names referenced in a preceding `global` statement.
Refs [#​10633](https://github.com/pylint-dev/pylint/issues/10633 )
## Other Bug Fixes
- When displaying unicode with surrogates (or other potential `UnicodeEncodeError`),
pylint will now display a '?' character (using `encode(encoding="utf-8", errors="replace")`)
instead of crashing. The functional tests classes are also updated to handle this case.
Closes [#​8736](https://github.com/pylint-dev/pylint/issues/8736 )
- Fixed unidiomatic-typecheck only checking left-hand side.
Closes [#​10217](https://github.com/pylint-dev/pylint/issues/10217 )
- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.
Closes [#​10282](https://github.com/pylint-dev/pylint/issues/10282 )
- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.
Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508 )
- Fix a crash in :ref:`nested-min-max` when using `builtins.min` or `builtins.max`
instead of `min` or `max` directly.
Closes [#​10626](https://github.com/pylint-dev/pylint/issues/10626 )
- Fixed a crash in :ref:`unnecessary-dict-index-lookup` when the index of an enumerated list
was deleted inside a for loop.
Closes [#​10627](https://github.com/pylint-dev/pylint/issues/10627 )
## Other Changes
- Remove support for launching pylint with Python 3.9.
Code that supports Python 3.9 can still be linted with the `--py-version=3.9` setting.
Refs [#​10405](https://github.com/pylint-dev/pylint/issues/10405 )
## Internal Changes
- Modified test framework to allow for different test output for different Python versions.
Refs [#​10382](https://github.com/pylint-dev/pylint/issues/10382 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/399
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-07 11:26:12 +00:00
renovate-bot
b8f5508dca
feat(deps): lock file maintenance ( #400 )
...
Security / snyk (push) Successful in 28s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #400
Reviewed-by: Luke Tainton <luke@tainton.uk >
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-07 11:23:39 +00:00
renovate-bot
71777ecc02
chore(deps): update actions/checkout action to v6.0.1 ( #398 )
...
Security / snyk (push) Successful in 1m37s
Release / Tag release (push) Successful in 11s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Failing after 46s
Release / Get Release ID (push) Successful in 1s
Release / Build Wheel File (push) Failing after 10s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | patch | `v6.0.0` -> `v6.0.1` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v6.0.1`](https://github.com/actions/checkout/releases/tag/v6.0.1 )
[Compare Source](https://github.com/actions/checkout/compare/v6.0.0...v6.0.1 )
#### What's Changed
- Update all references from v5 and v4 to v6 by [@​ericsciple](https://github.com/ericsciple ) in [#​2314](https://github.com/actions/checkout/pull/2314 )
- Add worktree support for persist-credentials includeIf by [@​ericsciple](https://github.com/ericsciple ) in [#​2327](https://github.com/actions/checkout/pull/2327 )
- Clarify v6 README by [@​ericsciple](https://github.com/ericsciple ) in [#​2328](https://github.com/actions/checkout/pull/2328 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v6...v6.0.1 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMC4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #398
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-12-06 11:03:41 +00:00
renovate-bot
fbbcb369c4
feat(deps): lock file maintenance ( #397 )
...
Release / Tag release (push) Successful in 12s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m8s
Release / Get Release ID (push) Successful in 2s
Release / Build Wheel File (push) Failing after 11s
Security / snyk (push) Successful in 30s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS4zIiwidXBkYXRlZEluVmVyIjoiNDIuMTkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #397
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-27 18:53:34 +00:00
renovate-bot
361cd6a323
chore(deps): update actions/checkout action to v6 ( #396 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m19s
Release / Get Release ID (push) Successful in 1s
Release / Build Wheel File (push) Failing after 8s
Security / snyk (push) Successful in 29s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | major | `v5.0.1` -> `v6.0.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v6.0.0`](https://github.com/actions/checkout/releases/tag/v6.0.0 )
[Compare Source](https://github.com/actions/checkout/compare/v5.0.1...v6.0.0 )
#### What's Changed
- Update README to include Node.js 24 support details and requirements by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2248](https://github.com/actions/checkout/pull/2248 )
- Persist creds to a separate file by [@​ericsciple](https://github.com/ericsciple ) in [#​2286](https://github.com/actions/checkout/pull/2286 )
- v6-beta by [@​ericsciple](https://github.com/ericsciple ) in [#​2298](https://github.com/actions/checkout/pull/2298 )
- update readme/changelog for v6 by [@​ericsciple](https://github.com/ericsciple ) in [#​2311](https://github.com/actions/checkout/pull/2311 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v5.0.0...v6.0.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOC4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #396
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-20 16:53:12 +00:00
renovate-bot
4469b7ebb1
feat(deps): lock file maintenance ( #394 )
...
Security / snyk (push) Successful in 1m25s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #394
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-17 19:22:57 +00:00
renovate-bot
43ead425d8
chore(deps): update actions/checkout action to v5.0.1 ( #395 )
...
Security / snyk (push) Successful in 35s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | patch | `v5.0.0` -> `v5.0.1` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v5.0.1`](https://github.com/actions/checkout/releases/tag/v5.0.1 )
[Compare Source](https://github.com/actions/checkout/compare/v5.0.0...v5.0.1 )
#### What's Changed
- Port v6 cleanup to v5 by [@​ericsciple](https://github.com/ericsciple ) in [#​2301](https://github.com/actions/checkout/pull/2301 )
**Full Changelog**: <https://github.com/actions/checkout/compare/v5...v5.0.1 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #395
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-17 19:21:37 +00:00
renovate-bot
ca26704f34
feat(deps): lock file maintenance ( #392 )
...
Release / Tag release (push) Successful in 12s
Release / Create Release (push) Successful in 1s
Release / Publish Docker Images (push) Successful in 1m4s
Release / Get Release ID (push) Successful in 2s
Release / Build Wheel File (push) Failing after 8s
Security / snyk (push) Successful in 29s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #392
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-10 21:15:24 +00:00
renovate-bot
3bd83e18c3
chore(deps): update dependency black to <25.11.1,>=25.11.0 ( #393 )
...
Security / snyk (push) Successful in 29s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.9.1,>=25.9.0` -> `<25.11.1,>=25.11.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.11.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#25110 )
[Compare Source](https://github.com/psf/black/compare/25.9.0...25.11.0 )
##### Highlights
- Enable base 3.14 support ([#​4804](https://github.com/psf/black/issues/4804 ))
- Add support for the new Python 3.14 t-string syntax introduced by PEP 750 ([#​4805](https://github.com/psf/black/issues/4805 ))
##### Stable style
- Fix bug where comments between `# fmt: off` and `# fmt: on` were reformatted ([#​4811](https://github.com/psf/black/issues/4811 ))
- Comments containing fmt directives now preserve their exact formatting instead of
being normalized ([#​4811](https://github.com/psf/black/issues/4811 ))
##### Preview style
- Move `multiline_string_handling` from `--unstable` to `--preview` ([#​4760](https://github.com/psf/black/issues/4760 ))
- Fix bug where module docstrings would be treated as normal strings if preceded by
comments ([#​4764](https://github.com/psf/black/issues/4764 ))
- Fix bug where python 3.12 generics syntax split line happens weirdly ([#​4777](https://github.com/psf/black/issues/4777 ))
- Standardize type comments to form `# type: <value>` ([#​4645](https://github.com/psf/black/issues/4645 ))
- Fix `fix_fmt_skip_in_one_liners` preview feature to respect `# fmt: skip` for compound
statements with semicolon-separated bodies ([#​4800](https://github.com/psf/black/issues/4800 ))
##### Configuration
- Add `no_cache` option to control caching behavior. ([#​4803](https://github.com/psf/black/issues/4803 ))
##### Packaging
- Releases now include arm64 Linux binaries ([#​4773](https://github.com/psf/black/issues/4773 ))
##### Output
- Write unchanged content to stdout when excluding formatting from stdin using pipes
([#​4610](https://github.com/psf/black/issues/4610 ))
##### *Blackd*
- Implemented BlackDClient. This simple python client allows to easily send formatting
requests to blackd ([#​4774](https://github.com/psf/black/issues/4774 ))
##### Integrations
- Enable 3.14 base CI ([#​4804](https://github.com/psf/black/issues/4804 ))
- Enhance GitHub Action `psf/black` to support the `required-version` major-version-only
"stability" format when using pyproject.toml ([#​4770](https://github.com/psf/black/issues/4770 ))
- Improve error message for vim plugin users. It now handles independently vim version
- Vim: Warn on unsupported Vim and Python versions independently ([#​4772](https://github.com/psf/black/issues/4772 ))
- Vim: Print the import paths when importing black fails ([#​4675](https://github.com/psf/black/issues/4675 ))
- Vim: Fix handling of virtualenvs that have a different Python version ([#​4675](https://github.com/psf/black/issues/4675 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4yLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/393
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-10 21:14:40 +00:00
renovate-bot
50dbaafb78
chore(deps): update dependency pytest to v9 ( #391 )
...
Release / Tag release (push) Successful in 13s
Release / Create Release (push) Successful in 2s
Release / Get Release ID (push) Successful in 2s
Release / Publish Docker Images (push) Failing after 1m11s
Release / Build Wheel File (push) Failing after 13s
Security / snyk (push) Successful in 1m20s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pytest](https://github.com/pytest-dev/pytest ) ([changelog](https://docs.pytest.org/en/stable/changelog.html )) | `<9.0.0,>=8.1.1` -> `<9.1.0,>=9.0.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pytest-dev/pytest (pytest)</summary>
### [`v9.0.0`](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0 )
[Compare Source](https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.0 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ1cGRhdGVkSW5WZXIiOiI0Mi4xLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: #391
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-11-08 17:42:38 +00:00
renovate-bot
3bd993f439
feat(deps): update https://git.tainton.uk/actions/conventional-commits-check-action action to v1.3.0 ( #390 )
...
Release / Tag release (push) Successful in 9s
Release / Create Release (push) Successful in 4s
Release / Publish Docker Images (push) Successful in 1m26s
Release / Get Release ID (push) Successful in 2s
Release / Build Wheel File (push) Failing after 11s
Security / snyk (push) Successful in 1m32s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [https://git.tainton.uk/actions/conventional-commits-check-action ](https://git.tainton.uk/actions/conventional-commits-check-action ) | action | minor | `v1.2.4` -> `v1.3.0` |
---
### Release Notes
<details>
<summary>actions/conventional-commits-check-action (https://git.tainton.uk/actions/conventional-commits-check-action )</summary>
### [`v1.3.0`](https://git.tainton.uk/actions/conventional-commits-check-action/releases/tag/v1.3.0 )
[Compare Source](https://git.tainton.uk/actions/conventional-commits-check-action/compare/v1.2.4...v1.3.0 )
##### Features
- **deps:** update conventional-pre-commit to 4.3.0 ([b6d1665](b6d1665137 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjE2NS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #390
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-30 20:40:53 +00:00
luke
f2eb2bed82
Update renovate.json
Security / snyk (push) Successful in 26s
2025-10-30 20:13:37 +00:00
renovate-bot
e13b0de800
chore(deps): lock file maintenance ( #389 )
...
Release / Tag release (push) Successful in 17s
Release / Create Release (push) Successful in 5s
Release / Get Release ID (push) Successful in 6s
Release / Publish Docker Images (push) Failing after 1m9s
Release / Build Wheel File (push) Failing after 10s
Security / snyk (push) Successful in 1m9s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTIuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1Mi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #389
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-20 06:21:47 +00:00
renovate-bot
2240bdc031
chore(deps): update dependency python ( #382 )
...
Release / Tag release (push) Successful in 8s
Release / Create Release (push) Successful in 1s
Release / Get Release ID (push) Successful in 2s
Release / Publish Docker Images (push) Successful in 1m15s
Release / Build Wheel File (push) Failing after 50s
Security / snyk (push) Successful in 1m1s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [python](https://github.com/actions/python-versions ) | uses-with | minor | `3.13` -> `3.14` |
| python | final | minor | `3.13-slim` -> `3.14-slim` |
---
### Release Notes
<details>
<summary>actions/python-versions (python)</summary>
### [`v3.14.0`](https://github.com/actions/python-versions/releases/tag/3.14.0-18313368925 ): 3.14.0
[Compare Source](https://github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925 )
Python 3.14.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzguNSIsInVwZGF0ZWRJblZlciI6IjQxLjE0MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #382
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 20:06:48 +02:00
luke
5249c54e1e
fix(ci): Remove dependencies of dependencies ( #388 )
...
Security / snyk (push) Successful in 2m2s
Reviewed-on: #388
2025-10-13 20:03:56 +02:00
renovate-bot
92714ee045
fix(deps): update dependency idna to v3.11 ( #386 )
...
Security / snyk (push) Successful in 2m5s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [idna](https://github.com/kjd/idna ) ([changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst )) | `==3.10` -> `==3.11` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>kjd/idna (idna)</summary>
### [`v3.11`](https://github.com/kjd/idna/compare/v3.10...v3.11 )
[Compare Source](https://github.com/kjd/idna/compare/v3.10...v3.11 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #386
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-13 19:50:20 +02:00
renovate-bot
9b8113f2ca
fix(deps): update dependency platformdirs to v4.5.0 ( #384 )
...
Release / Create Release (push) Has been skipped
Release / Get Release ID (push) Has been skipped
Release / Tag release (push) Failing after 1m49s
Release / Build Wheel File (push) Has been skipped
Release / Publish Docker Images (push) Has been skipped
Security / snyk (push) Successful in 19m12s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [platformdirs](https://github.com/tox-dev/platformdirs ) ([changelog](https://github.com/tox-dev/platformdirs/releases )) | `==4.4.0` -> `==4.5.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>tox-dev/platformdirs (platformdirs)</summary>
### [`v4.5.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.5.0 )
[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0 )
<!-- Release notes generated using configuration in .github/release.yml at main -->
#### What's Changed
- \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci )\[bot] in [#​376](https://github.com/tox-dev/platformdirs/pull/376 )
- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in the all group by [@​dependabot](https://github.com/dependabot )\[bot] in [#​378](https://github.com/tox-dev/platformdirs/pull/378 )
- Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by [@​dependabot](https://github.com/dependabot )\[bot] in [#​379](https://github.com/tox-dev/platformdirs/pull/379 )
- \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci )\[bot] in [#​381](https://github.com/tox-dev/platformdirs/pull/381 )
- Add support for Python 3.14 by [@​hugovk](https://github.com/hugovk ) in [#​382](https://github.com/tox-dev/platformdirs/pull/382 )
- \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci )\[bot] in [#​383](https://github.com/tox-dev/platformdirs/pull/383 )
- Update Windows file paths in README by [@​ParadaCarleton](https://github.com/ParadaCarleton ) in [#​385](https://github.com/tox-dev/platformdirs/pull/385 )
- \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci )\[bot] in [#​384](https://github.com/tox-dev/platformdirs/pull/384 )
- \[pre-commit.ci] pre-commit autoupdate by [@​pre-commit-ci](https://github.com/pre-commit-ci )\[bot] in [#​387](https://github.com/tox-dev/platformdirs/pull/387 )
- Bump astral-sh/setup-uv from 6 to 7 in the all group by [@​dependabot](https://github.com/dependabot )\[bot] in [#​388](https://github.com/tox-dev/platformdirs/pull/388 )
- Drop 3.9 support by [@​gaborbernat](https://github.com/gaborbernat ) in [#​389](https://github.com/tox-dev/platformdirs/pull/389 )
#### New Contributors
- [@​ParadaCarleton](https://github.com/ParadaCarleton ) made their first contribution in [#​385](https://github.com/tox-dev/platformdirs/pull/385 )
**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.4.0...4.5.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #384
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-11 13:11:58 +02:00
renovate-bot
bfdca834ef
fix(deps): update dependency tomli to v2.3.0 ( #385 )
...
Security / snyk (push) Has been cancelled
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [tomli](https://github.com/hukkin/tomli ) ([changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md )) | `==2.2.1` -> `==2.3.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>hukkin/tomli (tomli)</summary>
### [`v2.3.0`](https://github.com/hukkin/tomli/blob/HEAD/CHANGELOG.md#230 )
[Compare Source](https://github.com/hukkin/tomli/compare/2.2.1...2.3.0 )
- Added
- Binary wheels for Python 3.14 (also free-threaded)
- Performance
- Reduced import time
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #385
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-11 13:11:36 +02:00
renovate-bot
810023b3dd
chore(deps): update astral-sh/setup-uv action to v7 ( #383 )
...
Security / snyk (push) Successful in 27m38s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv ) | action | major | `v6` -> `v7` |
---
### Release Notes
<details>
<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>
### [`v7`](https://github.com/astral-sh/setup-uv/compare/v6...v7 )
[Compare Source](https://github.com/astral-sh/setup-uv/compare/v6...v7 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjEzOS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #383
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-07 22:37:27 +02:00
renovate-bot
5adf15cc92
chore(deps): lock file maintenance ( #380 )
...
Security / snyk (push) Successful in 24m11s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNSIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #380
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-06 20:12:27 +02:00
renovate-bot
bfb0a2dfc0
fix(deps): update dependency attrs to v25.4.0 ( #381 )
...
Security / snyk (push) Has been cancelled
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [attrs](https://github.com/python-attrs/attrs ) ([changelog](https://www.attrs.org/en/stable/changelog.html )) | `==25.3.0` -> `==25.4.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>python-attrs/attrs (attrs)</summary>
### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06 )
[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0 )
##### Backwards-incompatible Changes
- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.
Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.
If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.
Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.
This shouldn't be a problem for most users, unless you have a pattern like this:
```python
@​attrs.define(kw_only=True)
class Base:
a: int
b: int = attrs.field(default=1, kw_only=False)
@​attrs.define
class Subclass(Base):
c: int
```
Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).
Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.
[#​1457](https://github.com/python-attrs/attrs/issues/1457 )
##### Changes
- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\_only* was not specified).
[#​1427](https://github.com/python-attrs/attrs/issues/1427 )
- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/ ).
[#​1446](https://github.com/python-attrs/attrs/issues/1446 ),
[#​1451](https://github.com/python-attrs/attrs/issues/1451 )
- `attrs.validators.deep_mapping()` now allows to leave out either *key\_validator* xor *value\_validator*.
[#​1448](https://github.com/python-attrs/attrs/issues/1448 )
- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.
[#​1449](https://github.com/python-attrs/attrs/issues/1449 )
- Added a new **experimental** way to inspect classes:
`attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.
The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.
[#​1454](https://github.com/python-attrs/attrs/issues/1454 )
- Fixed annotations for `attrs.field(converter=...)`.
Previously, a `tuple` of converters was only accepted if it had exactly one element.
[#​1461](https://github.com/python-attrs/attrs/issues/1461 )
- The performance of `attrs.asdict()` has been improved by 45–260%.
[#​1463](https://github.com/python-attrs/attrs/issues/1463 )
- The performance of `attrs.astuple()` has been improved by 49–270%.
[#​1469](https://github.com/python-attrs/attrs/issues/1469 )
- The type annotation for `attrs.validators.or_()` now allows for different types of validators.
This was only an issue on Pyright.
[#​1474](https://github.com/python-attrs/attrs/issues/1474 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-06 20:12:04 +02:00
renovate-bot
4d6d9f44d4
fix(deps): update dependency certifi to v2025.10.5 ( #378 )
...
Security / snyk (push) Successful in 21m35s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [certifi](https://github.com/certifi/python-certifi ) | `==2025.8.3` -> `==2025.10.5` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>certifi/python-certifi (certifi)</summary>
### [`v2025.10.5`](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05 )
[Compare Source](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #378
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk >
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk >
2025-10-05 11:25:33 +02:00
renovate-bot
822d790d04
chore(deps): update hadolint/hadolint-action action to v3.3.0 ( #377 )
...
Security / snyk (push) Successful in 2m15s
Release / Tag release (push) Successful in 1m22s
Release / Create Release (push) Successful in 3s
Release / Publish Docker Images (push) Failing after 5m8s
Release / Get Release ID (push) Successful in 5s
Release / Build Wheel File (push) Failing after 35s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action ) | action | minor | `v3.2.0` -> `v3.3.0` |
---
### Release Notes
<details>
<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>
### [`v3.3.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.3.0 )
[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.2.0...v3.3.0 )
##### Features
- trigger release workflow ([2332a7b](https://github.com/hadolint/hadolint-action/commit/2332a7b74a6de0dda2e2221d575162eba76ba5e5 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjMuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #377
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-22 19:49:44 +02:00
renovate-bot
5c7d4727b9
chore(deps): lock file maintenance ( #376 )
...
Security / snyk (push) Successful in 3m38s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjIuMyIsInVwZGF0ZWRJblZlciI6IjQxLjEyMi4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #376
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-22 08:15:53 +02:00
renovate-bot
f4125f342a
fix(deps): update dependency pyparsing to v3.2.5 ( #375 )
...
Security / snyk (push) Successful in 27m11s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| pyparsing | `==3.2.4` -> `==3.2.5` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjEuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEyMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #375
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-21 15:10:44 +02:00
renovate-bot
070e337f00
chore(deps): update dependency black to <25.9.1,>=25.9.0 ( #374 )
...
Security / snyk (push) Failing after 8m13s
Release / Tag release (push) Successful in 1m21s
Release / Create Release (push) Successful in 5m28s
Release / Get Release ID (push) Successful in 5s
Release / Build Wheel File (push) Successful in 3m2s
Release / Publish Docker Images (push) Successful in 8m55s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [black](https://github.com/psf/black ) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md )) | `<25.2.0,>=25.1.0` -> `<25.9.1,>=25.9.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>psf/black (black)</summary>
### [`v25.9.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2590 )
[Compare Source](https://github.com/psf/black/compare/25.1.0...25.9.0 )
##### Highlights
- Remove support for pre-python 3.7 `await/async` as soft keywords/variable names
([#​4676](https://github.com/psf/black/issues/4676 ))
##### Stable style
- Fix crash while formatting a long `del` statement containing tuples ([#​4628](https://github.com/psf/black/issues/4628 ))
- Fix crash while formatting expressions using the walrus operator in complex `with`
statements ([#​4630](https://github.com/psf/black/issues/4630 ))
- Handle `# fmt: skip` followed by a comment at the end of file ([#​4635](https://github.com/psf/black/issues/4635 ))
- Fix crash when a tuple appears in the `as` clause of a `with` statement ([#​4634](https://github.com/psf/black/issues/4634 ))
- Fix crash when tuple is used as a context manager inside a `with` statement ([#​4646](https://github.com/psf/black/issues/4646 ))
- Fix crash when formatting a `\` followed by a `\r` followed by a comment ([#​4663](https://github.com/psf/black/issues/4663 ))
- Fix crash on a `\\r\n` ([#​4673](https://github.com/psf/black/issues/4673 ))
- Fix crash on `await ...` (where `...` is a literal `Ellipsis`) ([#​4676](https://github.com/psf/black/issues/4676 ))
- Fix crash on parenthesized expression inside a type parameter bound ([#​4684](https://github.com/psf/black/issues/4684 ))
- Fix crash when using line ranges excluding indented single line decorated items
([#​4670](https://github.com/psf/black/issues/4670 ))
##### Preview style
- Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still
be formatted ([#​4552](https://github.com/psf/black/issues/4552 ))
- Improve `multiline_string_handling` with ternaries and dictionaries ([#​4657](https://github.com/psf/black/issues/4657 ))
- Fix a bug where `string_processing` would not split f-strings directly after
expressions ([#​4680](https://github.com/psf/black/issues/4680 ))
- Wrap the `in` clause of comprehensions across lines if necessary ([#​4699](https://github.com/psf/black/issues/4699 ))
- Remove parentheses around multiple exception types in `except` and `except*` without
`as`. ([#​4720](https://github.com/psf/black/issues/4720 ))
- Add `\r` style newlines to the potential newlines to normalize file newlines both from
and to ([#​4710](https://github.com/psf/black/issues/4710 ))
##### Parser
- Rewrite tokenizer to improve performance and compliance ([#​4536](https://github.com/psf/black/issues/4536 ))
- Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type
parameter bounds and defaults. ([#​4602](https://github.com/psf/black/issues/4602 ))
##### Performance
- Avoid using an extra process when running with only one worker ([#​4734](https://github.com/psf/black/issues/4734 ))
##### Integrations
- Fix the version check in the vim file to reject Python 3.8 ([#​4567](https://github.com/psf/black/issues/4567 ))
- Enhance GitHub Action `psf/black` to read Black version from an additional section in
pyproject.toml: `[project.dependency-groups]` ([#​4606](https://github.com/psf/black/issues/4606 ))
- Build gallery docker image with python3-slim and reduce image size ([#​4686](https://github.com/psf/black/issues/4686 ))
##### Documentation
- Add FAQ entry for windows emoji not displaying ([#​4714](https://github.com/psf/black/issues/4714 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ1cGRhdGVkSW5WZXIiOiI0MS4xMTYuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvZGVwZW5kZW5jaWVzIl19-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/374
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-19 21:15:41 +02:00
renovate-bot
998205c529
fix(deps): update dependency click to v8.3.0 ( #373 )
...
Security / snyk (push) Failing after 8m8s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [click](https://github.com/pallets/click ) ([changelog](https://click.palletsprojects.com/page/changes/ )) | `==8.2.2` -> `==8.3.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>pallets/click (click)</summary>
### [`v8.3.0`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-830 )
[Compare Source](https://github.com/pallets/click/compare/8.2.2...8.3.0 )
Released 2025-09-15
- **Improved flag option handling**: Reworked the relationship between `flag_value`
and `default` parameters for better consistency:
- The `default` parameter value is now preserved as-is and passed directly
to CLI functions (no more unexpected transformations)
- Exception: flag options with `default=True` maintain backward compatibility
by defaulting to their `flag_value`
- The `default` parameter can now be any type (`bool`, `None`, etc.)
- Fixes inconsistencies reported in: :issue:`1992` :issue:`2514` :issue:`2610`
:issue:`3024` :pr:`3030`
- Allow `default` to be set on `Argument` for `nargs = -1`. :issue:`2164`
:pr:`3030`
- Show correct auto complete value for `nargs` option in combination with flag
option :issue:`2813`
- Show correct auto complete value for nargs option in combination with flag option :issue:`2813`
- Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:`2995` :pr:`3013`
- Lazily import `shutil`. :pr:`3023`
- Properly forward exception information to resources registered with
`click.core.Context.with_resource()`. :issue:`2447` :pr:`3058`
- Fix regression related to EOF handling in CliRunner. :issue:`2939`:pr:`2940`
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTYuOSIsInVwZGF0ZWRJblZlciI6IjQxLjExNi45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #373
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-18 21:45:28 +02:00
renovate-bot
ec5246b82b
chore(deps): update actions/checkout action to v5 ( #361 )
...
Security / snyk (push) Successful in 38m8s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | major | `v4.3.0` -> `v5.0.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v5.0.0`](https://github.com/actions/checkout/releases/tag/v5.0.0 )
[Compare Source](https://github.com/actions/checkout/compare/v4.3.0...v5.0.0 )
#### What's Changed
- Update actions checkout to use node 24 by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2226](https://github.com/actions/checkout/pull/2226 )
- Prepare v5.0.0 release by [@​salmanmkc](https://github.com/salmanmkc ) in [#​2238](https://github.com/actions/checkout/pull/2238 )
#### ⚠️ Minimum Compatible Runner Version
**v2.327.1**\
[Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1 )
Make sure your runner is updated to this version or newer to use this release.
**Full Changelog**: <https://github.com/actions/checkout/compare/v4...v5.0.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuODEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #361
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-15 11:31:35 +02:00
renovate-bot
e262f51e7b
chore(deps): update actions/setup-python action to v6 ( #369 )
...
Security / snyk (push) Successful in 1m25s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-python](https://github.com/actions/setup-python ) | action | major | `v5` -> `v6` |
---
### Release Notes
<details>
<summary>actions/setup-python (actions/setup-python)</summary>
### [`v6`](https://github.com/actions/setup-python/compare/v5...v6 )
[Compare Source](https://github.com/actions/setup-python/compare/v5...v6 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #369
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-15 11:22:43 +02:00
renovate-bot
0c8ed48a80
chore(deps): lock file maintenance ( #372 )
...
Security / snyk (push) Successful in 1m7s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTMuMyIsInVwZGF0ZWRJblZlciI6IjQxLjExMy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #372
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-15 11:12:37 +02:00
renovate-bot
0bd64526b2
fix(deps): update dependency pyparsing to v3.2.4 ( #371 )
...
Security / snyk (push) Successful in 29m11s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| pyparsing | `==3.2.3` -> `==3.2.4` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjQxLjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #371
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-14 13:02:06 +02:00
renovate-bot
a7ec6aec42
chore(deps): update hadolint/hadolint-action action to v3.2.0 ( #368 )
...
Security / snyk (push) Failing after 31m50s
Release / Tag release (push) Successful in 25s
Release / Create Release (push) Successful in 7s
Release / Publish Docker Images (push) Failing after 7m2s
Release / Get Release ID (push) Successful in 6s
Release / Build Wheel File (push) Failing after 24s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action ) | action | minor | `v3.1.0` -> `v3.2.0` |
---
### Release Notes
<details>
<summary>hadolint/hadolint-action (hadolint/hadolint-action)</summary>
### [`v3.2.0`](https://github.com/hadolint/hadolint-action/releases/tag/v3.2.0 )
[Compare Source](https://github.com/hadolint/hadolint-action/compare/v3.1.0...v3.2.0 )
##### Features
- new minor release ([3fc49fb](https://github.com/hadolint/hadolint-action/commit/3fc49fb50d59c6ab7917a2e4195dba633e515b29 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS40IiwidXBkYXRlZEluVmVyIjoiNDEuOTEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #368
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-09 14:57:15 +02:00
renovate-bot
0ea421235e
chore(deps): lock file maintenance ( #367 )
...
Security / snyk (push) Successful in 1m51s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4yIiwidXBkYXRlZEluVmVyIjoiNDEuOTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #367
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-09-09 14:53:27 +02:00
renovate-bot
bd3f38c2f1
fix(deps): update dependency platformdirs to v4.4.0 ( #366 )
...
Release / Tag release (push) Successful in 44s
Release / Publish Docker Images (push) Failing after 8m23s
Release / Create Release (push) Successful in 9m42s
Release / Get Release ID (push) Successful in 6s
Release / Build Wheel File (push) Failing after 48s
Security / snyk (push) Successful in 16m29s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [platformdirs](https://github.com/tox-dev/platformdirs ) ([changelog](https://github.com/tox-dev/platformdirs/releases )) | `==4.3.8` -> `==4.4.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>tox-dev/platformdirs (platformdirs)</summary>
### [`v4.4.0`](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0 )
[Compare Source](https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0 )
##### What's Changed
- feat: improve homebrew path detection by [@​daeho-ro](https://github.com/daeho-ro ) in [#​370](https://github.com/tox-dev/platformdirs/pull/370 )
##### New Contributors
- [@​daeho-ro](https://github.com/daeho-ro ) made their first contribution in [#​370](https://github.com/tox-dev/platformdirs/pull/370 )
**Full Changelog**: <https://github.com/tox-dev/platformdirs/compare/4.3.8...4.4.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44My4yIiwidXBkYXRlZEluVmVyIjoiNDEuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #366
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-28 22:10:39 +02:00
renovate-bot
cada9b58ab
chore(deps): lock file maintenance ( #365 )
...
Security / snyk (push) Successful in 7m41s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: #365
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-25 12:56:05 +02:00
renovate-bot
ef3e31b047
chore(deps): update dependency lazy-object-proxy to v1.12.0 ( #364 )
...
Release / Tag release (push) Successful in 19s
Release / Create Release (push) Successful in 5s
Release / Get Release ID (push) Successful in 5s
Release / Publish Docker Images (push) Failing after 2m42s
Release / Build Wheel File (push) Failing after 29s
Security / snyk (push) Successful in 7m12s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy ) ([changelog](https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html )) | `==1.11.0` -> `==1.12.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>ionelmc/python-lazy-object-proxy (lazy-object-proxy)</summary>
### [`v1.12.0`](https://github.com/ionelmc/python-lazy-object-proxy/blob/HEAD/CHANGELOG.rst#1120-2025-08-22 )
[Compare Source](https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0 )
- Fixed testing issues when C extensions are not desired.
Contributed by Michał Górny in `#​79 <https://github.com/ionelmc/python-lazy-object-proxy/pull/79 >`\_.
- Added support for GraalPy.
Contributed by Michael Šimáček in `#​87 <https://github.com/ionelmc/python-lazy-object-proxy/pull/87 >`\_.
- Fixed testing issues on Python 3.14.
Contributed by Michał Górny in `#​88 <https://github.com/ionelmc/python-lazy-object-proxy/pull/88 >`\_.
- Modernized packaging to have metadata in `pyproject.toml`.
- Added Python 3.14 wheels.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44MS42IiwidXBkYXRlZEluVmVyIjoiNDEuODEuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #364
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-22 21:29:05 +02:00
renovate-bot
2e4f57ed78
chore(deps): update dependency requests to v2.32.5 ( #363 )
...
Security / snyk (push) Successful in 7m26s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [requests](https://requests.readthedocs.io ) ([source](https://github.com/psf/requests ), [changelog](https://github.com/psf/requests/blob/master/HISTORY.md )) | `==2.32.4` -> `==2.32.5` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>psf/requests (requests)</summary>
### [`v2.32.5`](https://github.com/psf/requests/blob/HEAD/HISTORY.md#2325-2025-08-18 )
[Compare Source](https://github.com/psf/requests/compare/v2.32.4...v2.32.5 )
**Bugfixes**
- The SSLContext caching feature originally introduced in 2.32.0 has created
a new class of issues in Requests that have had negative impact across a number
of use cases. The Requests team has decided to revert this feature as long term
maintenance of it is proving to be unsustainable in its current iteration.
**Deprecations**
- Added support for Python 3.14.
- Dropped support for Python 3.8 following its end of support.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS43Ni4xIiwidXBkYXRlZEluVmVyIjoiNDEuNzYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #363
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-19 10:46:28 +02:00
renovate-bot
1c9d3f9ef9
chore(deps): update actions/checkout action to v4.3.0 ( #360 )
...
Release / Tag release (push) Successful in 54s
Release / Create Release (push) Successful in 11s
Release / Get Release ID (push) Successful in 10s
Release / Publish Docker Images (push) Successful in 5m59s
Release / Build Wheel File (push) Successful in 1m12s
Security / snyk (push) Successful in 9m31s
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://github.com/actions/checkout ) | action | minor | `v4.2.2` -> `v4.3.0` |
---
### Release Notes
<details>
<summary>actions/checkout (actions/checkout)</summary>
### [`v4.3.0`](https://github.com/actions/checkout/releases/tag/v4.3.0 )
[Compare Source](https://github.com/actions/checkout/compare/v4.2.2...v4.3.0 )
#### What's Changed
- docs: update README.md by [@​motss](https://github.com/motss ) in https://github.com/actions/checkout/pull/1971
- Add internal repos for checking out multiple repositories by [@​mouismail](https://github.com/mouismail ) in https://github.com/actions/checkout/pull/1977
- Documentation update - add recommended permissions to Readme by [@​benwells](https://github.com/benwells ) in https://github.com/actions/checkout/pull/2043
- Adjust positioning of user email note and permissions heading by [@​joshmgross](https://github.com/joshmgross ) in https://github.com/actions/checkout/pull/2044
- Update README.md by [@​nebuk89](https://github.com/nebuk89 ) in https://github.com/actions/checkout/pull/2194
- Update CODEOWNERS for actions by [@​TingluoHuang](https://github.com/TingluoHuang ) in https://github.com/actions/checkout/pull/2224
- Update package dependencies by [@​salmanmkc](https://github.com/salmanmkc ) in https://github.com/actions/checkout/pull/2236
- Prepare release v4.3.0 by [@​salmanmkc](https://github.com/salmanmkc ) in https://github.com/actions/checkout/pull/2237
#### New Contributors
- [@​motss](https://github.com/motss ) made their first contribution in https://github.com/actions/checkout/pull/1971
- [@​mouismail](https://github.com/mouismail ) made their first contribution in https://github.com/actions/checkout/pull/1977
- [@​benwells](https://github.com/benwells ) made their first contribution in https://github.com/actions/checkout/pull/2043
- [@​nebuk89](https://github.com/nebuk89 ) made their first contribution in https://github.com/actions/checkout/pull/2194
- [@​salmanmkc](https://github.com/salmanmkc ) made their first contribution in https://github.com/actions/checkout/pull/2236
**Full Changelog**: https://github.com/actions/checkout/compare/v4...v4.3.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #360
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-12 22:08:51 +02:00
renovate-bot
25ae52b3d2
chore(deps): lock file maintenance ( #359 )
...
Security / snyk (push) Successful in 1m23s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #359
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-12 21:45:44 +02:00
renovate-bot
606db50509
fix(deps): update dependency wrapt to v1.17.3 ( #362 )
...
Security / snyk (push) Successful in 1m21s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [wrapt](https://github.com/GrahamDumpleton/wrapt ) ([changelog](https://wrapt.readthedocs.io/en/latest/changes.html )) | `==1.17.2` -> `==1.17.3` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>GrahamDumpleton/wrapt (wrapt)</summary>
### [`v1.17.3`](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3 )
[Compare Source](https://github.com/GrahamDumpleton/wrapt/compare/1.17.2...1.17.3 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #362
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-12 21:42:07 +02:00
renovate-bot
4ab4381716
fix(deps): update dependency charset-normalizer to v3.4.3 ( #358 )
...
Release / Tag release (push) Successful in 29s
Release / Create Release (push) Successful in 8s
Release / Get Release ID (push) Successful in 8s
Release / Publish Docker Images (push) Successful in 4m29s
Release / Build Wheel File (push) Successful in 1m3s
Security / snyk (push) Successful in 8m31s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [charset-normalizer](https://github.com/jawah/charset_normalizer ) ([changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md )) | `==3.4.2` -> `==3.4.3` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>jawah/charset_normalizer (charset-normalizer)</summary>
### [`v3.4.3`](https://github.com/jawah/charset_normalizer/blob/HEAD/CHANGELOG.md#343-2025-08-09 )
[Compare Source](https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3 )
##### Changed
- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. ([#​595](https://github.com/jawah/charset_normalizer/issues/595 )) ([#​583](https://github.com/jawah/charset_normalizer/issues/583 ))
- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. ([#​391](https://github.com/jawah/charset_normalizer/issues/391 ))
##### Added
- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.
- Support for Python 3.14
##### Fixed
- sdist archive contained useless directories.
- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. ([#​633](https://github.com/jawah/charset_normalizer/issues/633 ))
##### Misc
- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC4yIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/358
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-09 19:44:28 +02:00
renovate-bot
94b3e8558c
chore(deps): lock file maintenance ( #357 )
...
Security / snyk (push) Successful in 4m58s
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #357
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-08 20:53:22 +02:00
renovate-bot
922c3931ed
fix(deps): update dependency certifi to v2025.8.3 ( #356 )
...
Security / snyk (push) Successful in 6m59s
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [certifi](https://github.com/certifi/python-certifi ) | `==2025.7.14` -> `==2025.8.3` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>certifi/python-certifi (certifi)</summary>
### [`v2025.8.3`](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03 )
[Compare Source](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->
Reviewed-on: #356
Co-authored-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
Co-committed-by: Renovate [BOT] <renovate-bot@git.tainton.uk >
2025-08-03 12:25:26 +02:00
8 changed files with
328 additions and
455 deletions
@@ -25,7 +25,7 @@ jobs:
runs-on : ubuntu-latest
steps:
- name : Checkout repo
uses : actions/checkout@v4.2.2
uses : actions/checkout@v6.0.1
- name : Snyk
uses : snyk/actions/python@master
@@ -12,12 +12,12 @@ jobs:
runs-on : ubuntu-latest
steps :
- name : Check out repository code
uses : actions/checkout@v4.2 .2
uses : actions/checkout@v6.0 .2
with :
fetch-depth : 0
- name : Run Hadolint
uses : hadolint/hadolint-action@v3.1 .0
uses : hadolint/hadolint-action@v3.3 .0
with :
dockerfile : Dockerfile
output-file : hadolint.out
@@ -25,12 +25,12 @@ jobs:
no-fail : true
- name : Setup Python
uses : actions/setup-python@v5
uses : actions/setup-python@v6
with :
python-version : 3.13
python-version : 3.14
- name : uv cache
uses : actions/cache@v4
uses : actions/cache@v5
with :
path : /tmp/.uv-cache
key : uv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
@@ -61,19 +61,19 @@ jobs:
# SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }}
# SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
- name : Set up environment for Snyk
run : |
uv pip freeze > requirements.txt
mv pyproject.toml pyproject.toml.bak
mv uv.lock uv.lock.bak
# - name: Set up environment for Snyk
# run: |
# uv pip freeze > requirements.txt
# mv pyproject.toml pyproject.toml.bak
# mv uv.lock uv.lock.bak
- name : Snyk SAST Scan
uses : snyk/actions/python@master
env :
SNYK_TOKEN : ${{ secrets.SNYK_TOKEN }}
with :
# command: snyk
args : snyk code test #--all-projects --exclude=.archive
# - name: Snyk SAST Scan
# uses: snyk/actions/python@master
# env:
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
# with:
# # command: snyk
# args: snyk code test #--all-projects --exclude=.archive
# - name: Snyk Vulnerability Scan
# uses: snyk/actions/python@master
@@ -84,8 +84,8 @@ jobs:
# command: snyk
# args: test --all-projects
- name : Reverse set up environment for Snyk
run : |
rm -f requirements.txt
mv pyproject.toml.bak pyproject.toml
mv uv.lock.bak uv.lock
# - name: Reverse set up environment for Snyk
# run: |
# rm -f requirements.txt
# mv pyproject.toml.bak pyproject.toml
# mv uv.lock.bak uv.lock
@@ -12,6 +12,6 @@ jobs:
name : Validate PR Title
runs-on : ubuntu-latest
steps :
- uses : https://git.tainton.uk/actions/conventional-commits-check-action@v1.2.4
- uses : https://git.tainton.uk/actions/conventional-commits-check-action@v1.3.0
with :
commit-message : ${{ gitea.event.pull_request.title }}
@@ -45,7 +45,7 @@ jobs:
runs-on : ubuntu-latest
steps :
- name : Check out repository code
uses : actions/checkout@v4.2 .2
uses : actions/checkout@v6.0 .2
with :
ref : ${{ needs.tag.outputs.tag_name }}
# - name: Setup Python
@@ -53,7 +53,7 @@ jobs:
# with:
# python-version: "3.13"
- name : Install uv
uses : astral-sh/setup-uv@v6
uses : astral-sh/setup-uv@v7
with :
enable-cache : true
cache-dependency-glob : "uv.lock"
@@ -125,7 +125,7 @@ jobs:
REPO : ${{ gitea.repository }}
- name : Check out repository
uses : actions/checkout@v4.2 .2
uses : actions/checkout@v6.0 .2
with :
fetch-depth : 0
ref : ${{ needs.tag.outputs.tag_name }}
@@ -134,14 +134,14 @@ jobs:
uses : docker/setup-buildx-action@v3
- name : Log in to Gitea Container Registry
uses : docker/login-action@v3
uses : docker/login-action@v4
with :
registry : ${{ vars.PACKAGES_REGISTRY_URL }}
username : ${{ vars.ACTIONS_USERNAME }}
password : ${{ secrets.ACTIONS_TOKEN }}
- name : Log in to GitHub Container Registry
uses : docker/login-action@v3
uses : docker/login-action@v4
with :
registry : ghcr.io
username : ${{ vars.GHCR_USERNAME }}
@@ -149,7 +149,7 @@ jobs:
- name : Extract metadata (tags, labels) for Docker
id : meta
uses : docker/metadata-action@v5
uses : docker/metadata-action@v6
with :
tags : type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }}
images : |
@@ -165,7 +165,7 @@ jobs:
printf "Tags:\n${{ steps.meta.outputs.tags }}"
- name : Build images
uses : docker/build-push-action@v6
uses : docker/build-push-action@v7
with :
context : .
push : false
@@ -1,4 +1,4 @@
FROM python:3.13 -slim
FROM python:3.14 -slim
LABEL maintainer = "Luke Tainton <luke@tainton.uk>"
LABEL org.opencontainers.image.source= "https://github.com/luketainton/pypilot"
USER root
@@ -7,50 +7,28 @@ authors = [
{ name = "Luke Tainton" , email = "luke@tainton.uk" } ,
]
requires-python = "<4.0,>=3.11"
dependencies = [
"astroid ==3 .3.11 " ,
"attrs==25.3 .0" ,
"certifi==2025.7.14" ,
"charset-normalizer==3.4.2" ,
"click==8.2.2" ,
"dill==0.4.0" ,
"exceptiongroup==1.3.0" ,
"idna==3.10" ,
"iniconfig==2.1.0" ,
"lazy-object-proxy==1.11.0" ,
"mccabe==0.7.0" ,
"mypy-extensions==1.1.0" ,
"packaging==25.0" ,
"pathspec==0.12.1" ,
"platformdirs==4.3.8" ,
"pluggy==1.6.0" ,
"py==1.11.0" ,
"pyparsing==3.2.3" ,
"requests==2.32.4" ,
"six==1.17.0" ,
"tabulate==0.9.0" ,
"tomli==2.2.1" ,
"tomlkit==0.13.3" ,
"urllib3==2.5.0" ,
"wrapt==1.17.2" ,
"requests ==2 .32.5 " ,
"tabulate==0.10 .0" ,
]
[ project . scripts ]
app = "app.main:main"
[ tool . uv ]
dev-dependencies = [
"black<25.2.0,>=25.1.0" ,
[ dependency-groups ]
dev = [
"black<26.3.1,>=26.3.0" ,
"coverage<8.0.0,>=7.5.0" ,
"pylint<4.0 .0,>=3.1.0 " ,
"pylint<4.1 .0,>=4.0.4 " ,
"pylint-exit<2.0.0,>=1.2.0" ,
"pytest<9.0 .0,>=8.1.1 " ,
"pytest<9.1 .0,>=9.0.0 " ,
"requests-mock<2.0.0,>=1.12.1" ,
]
[ tool . pdm . build ]
includes = [ ]
[ build-system ]
requires = [ "pdm-backend" ]
build-backend = "pdm.backend"
@@ -8,6 +8,11 @@
"platformCommit" : "enabled" ,
"rebaseWhen" : "behind-base-branch" ,
"rollbackPrs" : true ,
"semanticCommits" : "enabled" ,
"semanticCommitScope" : "deps" ,
"semanticCommitType" : "feat" ,
"osvVulnerabilityAlerts" : true ,
"dependencyDashboardOSVVulnerabilitySummary" : "all" ,
"vulnerabilityAlerts" : {
"commitMessagePrefix" : "[SECURITY] " ,
"enabled" : true ,
@@ -16,5 +21,15 @@
} ,
"lockFileMaintenance" : {
"enabled" : true
}
} ,
"packageRules" : [
{
"matchDepTypes" : [ "devDependencies" ] ,
"automerge" : true
} ,
{
"matchUpdateTypes" : [ "patch" ] ,
"automerge" : true
}
]
}
@@ -8,25 +8,16 @@ resolution-markers = [
[ [ package ] ]
name = "astroid"
version = "3.3.11 "
version = "4.0.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/18/74/dfb75f9ccd592bbedb175d4a32fc643cf569d7c218508bfbd6ea7ef9c091 /astroid-3.3.11 .tar.gz" , hash = "sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce " , size = 400439 , upload-time = "2025-07-13T18:04:23.177 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/07/63/0adf26577da5eff6eb7a177876c1cfa213856be9926a000f65c4add9692b /astroid-4.0.4 .tar.gz" , hash = "sha256:986fed8bcf79fb82c78b18a53352a0b287a73817d6dbcfba3162da36667c49a0 " , size = 406358 , upload-time = "2026-02-07T23:35:07.509 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86 /astroid-3.3.11 -py3-none-any.whl" , hash = "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec " , size = 275612 , upload-time = "2025 -07-13T18:04:21.07 Z" } ,
]
[ [ package ] ]
name = "attrs"
version = "25.3.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz" , hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b" , size = 812032 , upload-time = "2025-03-13T11:10:22.779Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl" , hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3" , size = 63815 , upload-time = "2025-03-13T11:10:21.14Z" } ,
{ url = "https://files.pythonhosted.org/packages/b0/cf/1c5f42b110e57bc5502eb80dbc3b03d256926062519224835ef08134f1f9 /astroid-4.0.4 -py3-none-any.whl" , hash = "sha256:52f39653876c7dec3e3afd4c2696920e05c83832b9737afc21928f2d2eb7a753 " , size = 276445 , upload-time = "2026 -02-07T23:35:05.344 Z" } ,
]
[ [ package ] ]
name = "black"
version = "25.1 .0"
version = "26.3 .0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" } ,
@@ -34,91 +25,125 @@ dependencies = [
{ name = "packaging" } ,
{ name = "pathspec" } ,
{ name = "platformdirs" } ,
{ name = "pytokens" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef /black-25.1 .0.tar.gz" , hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666 " , size = 649449 , upload-time = "2025 -01-29T04:15:40.373 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/11/5f/25b7b149b8b7d3b958efa4faa56446560408c0f2651108a517526de0320a /black-26.3 .0.tar.gz" , hash = "sha256:4d438dfdba1c807c6c7c63c4f15794dda0820d2222e7c4105042ac9ddfc5dd0b " , size = 664127 , upload-time = "2026 -03-06T17:42:33.7 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663d bfe 242a12843caaa82dd3f85f1ffdc3f177 /black-25.1 .0-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0 " , size = 1614372 , upload-time = "2025 -01-29T05:37:11.71 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036 /black-25.1 .0-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299 " , size = 1442865 , upload-time = "2025 -01-29T05:37:14.309 Z" } ,
{ url = "https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248 /black-25.1 .0-cp311-cp311-manylinux_2_17 _x86_64.manylinux2014 _x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096 " , size = 1749699 , upload-time = "2025 -01-29T04:18:17.688 Z" } ,
{ url = "https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99 /black-25.1 .0-cp311-cp311-win_amd64.whl" , hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2 " , size = 1428028 , upload-time = "2025 -01-29T04:18:51.71 1Z" } ,
{ url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2 /black-25.1 .0-cp312 -cp312-macosx_10_13_x86_ 64.whl" , hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b " , size = 1650988 , upload-time = "2025 -01-29T05:37:16.707 Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844 /black-25.1 .0-cp312-cp312-macosx_11_0_arm 64.whl" , hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc " , size = 1453985 , upload-time = "2025 -01-29T05:37:18.273 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754 /black-25.1 .0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f ", size = 1783816 , upload-time = "2025 -01-29T04:18:33.823 Z" } ,
{ url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261 /black-25.1 .0-cp312-cp312-win_amd64.whl" , hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba ", size = 1440860 , upload-time = "2025 -01-29T04:19:12.94 4Z" } ,
{ url = "https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d 1/black-25.1 .0-cp313 -cp313-macosx_10_13_x86_ 64.whl" , hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f " , size = 1650673 , upload-time = "2025 -01-29T05:37:20.574 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5 2/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3 /black-25.1 .0-cp313 -cp313-macosx_11_0 _arm64.whl" , hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3 " , size = 1453190 , upload-time = "2025 -01-29T05:37:22.106 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe /black-25.1 .0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171 ", size = 1782926 , upload-time = "2025 -01-29T04:18:58.564 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c c/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a /black-25.1 .0-cp313-cp313-win_amd 64.whl" , hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18 " , size = 1442613 , upload-time = "2025 -01-29T04:19:27.63 Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl" , hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f71071 7", size = 207646 , upload-time = "2025 -01-29T04:15:38.082 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f9/ec/e4db9f2b2db8226ae20d48b589c69fd64477657 bf241c8ccaea3bc4feafa /black-26.3 .0-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:3da07abe65732483e915ab7f9c7c50332c293056436e9519373775d62539607c " , size = 1851905 , upload-time = "2026 -03-06T17:46:15.447 Z" } ,
{ url = "https://files.pythonhosted.org/packages/62/2c/ccecfcbd6a0610ecf554e852a146f053eaeb5b281dd9cb634338518c765e /black-26.3 .0-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:fc9fd683ccabc3dc9791b93db494d93b5c6c03b105453b76d71e5474e9dfa6e7 " , size = 1689299 , upload-time = "2026 -03-06T17:46:17.396 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1a/53/8dcb860242012d6da9c6b1b930c3e4c947eb42feb1fc70f2a4e7332c90c5 /black-26.3 .0-cp311-cp311-manylinux2014 _x86_64.manylinux_2_17 _x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:8e2c7e2c5ee09ff575869258b2c07064c952637918fc5e15f6ebd45e45eae0aa " , size = 1753902 , upload-time = "2026 -03-06T17:46:19.592 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5d/21/f37b3efcc8cf2d01ec9eb5466598aa53bed2292db236723ac4571e24c4de /black-26.3 .0-cp311-cp311-win_amd64.whl" , hash = "sha256:a849286bfc3054eaeb233b6df9056fcf969ee18bf7ecb71b0257e838a0f05e6d " , size = 1413841 , upload-time = "2026 -03-06T17:46:20.98 1Z" } ,
{ url = "https://files.pythonhosted.org/packages/eb/74/e70f5f2a74301d8f10276b90715699d51d7db1c3dd79cf13966d32ba7b18 /black-26.3 .0-cp311 -cp311-win_arm 64.whl" , hash = "sha256:c93c83af43cda73ed8265d001214779ab245fa7a861a75b3e43828f4fb1f5657 " , size = 1220105 , upload-time = "2026 -03-06T17:46:23.269 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1d/76/b21711045b7f4c4f1774048d0b34dd10a265c42255658b251ce3303ae3c7 /black-26.3 .0-cp312-cp312-macosx_10_13_x86_ 64.whl" , hash = "sha256:c2b1e5eec220b419e3591a0aaa6351bd3a9c01fe6291fbaf76d84308eb7a2ede " , size = 1895944 , upload-time = "2026 -03-06T17:46:24.841 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f2/c3/8c56e73283326bc92a36101c660228fff09a2403a57a03cacf3f7f84cf62 /black-26.3 .0-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:1bab64de70bccc992432bee56cdffbe004ceeaa07352127c386faa87e81f9261 ", size = 1718669 , upload-time = "2026 -03-06T17:46:26.639 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7b/8b/712a3ae8f17c1f3cd6f9ac2fffb167a27192f5c7aba68724e8c4ab8474ad /black-26.3 .0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:5b6c5f734290803b7b26493ffd734b02b72e6c90d82d45ac4d5b862b9bdf7720 ", size = 1794844 , upload-time = "2026 -03-06T17:46:28.33 4Z" } ,
{ url = "https://files.pythonhosted.org/packages/ba/5b/ee955040e446df86473287dd24dc69c80dd05e02cc358bca90e22059f7b 1/black-26.3 .0-cp312 -cp312-win_amd 64.whl" , hash = "sha256:7c767396af15b54e1a6aae99ddf241ae97e589f666b1d22c4b6618282a04e4ca " , size = 1420461 , upload-time = "2026 -03-06T17:46:29.965 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1 2/77/40b8bd44f032bb34c9ebf47ffc5bb47a2520d29e0a4b8a780ab515223b5a /black-26.3 .0-cp312 -cp312-win _arm64.whl" , hash = "sha256:765fd6ddd00f35c55250fdc6b790c272d54ac3f44da719cc42df428269b45980 " , size = 1229667 , upload-time = "2026 -03-06T17:46:31.654 Z" } ,
{ url = "https://files.pythonhosted.org/packages/28/c3/21a834ce3de02c64221243f2adac63fa3c3f441efdb3adbf4136b33dfeb0 /black-26.3 .0-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:59754fd8f43ef457be190594c07a52c999e22cb1534dc5344bff1d46fdf1027d ", size = 1895195 , upload-time = "2026 -03-06T17:46:33.12 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1 c/f9/212d9697dd78362dadb778d4616b74c8c2cf7f2e4a55aac2adeb0576f2e9 /black-26.3 .0-cp313-cp313-macosx_11_0_arm 64.whl" , hash = "sha256:1fd94cfee67b8d336761a0b08629a25938e4a491c440951ce517a7209c99b5ff " , size = 1718472 , upload-time = "2026 -03-06T17:46:34.576 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a2/dd/da980b2f512441375b73cb511f38a2c3db4be83ccaa1302b8d39c9fa2dff/black-26.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:6f7b3e653a90ca1ef4e821c20f8edaee80b649c38d2532ed2e9073a9534b14a 7", size = 1793741 , upload-time = "2026 -03-06T17:46:36.261 Z" } ,
{ url = "https://files.pythonhosted.org/packages/93/11/cd69ae8826fe3bc6eaf525c8c557266d522b258154a2968eb46d6d25fac7/black-26.3.0-cp313-cp313-win_amd64.whl" , hash = "sha256:f8fb9d7c2496adc83614856e1f6e55a9ce4b7ae7fc7f45b46af9189ddb493464" , size = 1422522 , upload-time = "2026-03-06T17:46:37.607Z" } ,
{ url = "https://files.pythonhosted.org/packages/75/f5/647cf50255203eb286be197925e86eedc101d5409147505db3e463229228/black-26.3.0-cp313-cp313-win_arm64.whl" , hash = "sha256:e8618c1d06838f56afbcb3ffa1aa16436cec62b86b38c7b32ca86f53948ffb91" , size = 1231807 , upload-time = "2026-03-06T17:46:39.072Z" } ,
{ url = "https://files.pythonhosted.org/packages/ff/77/b197e701f15fd694d20d8ee0001efa2e29eba917aa7c3610ff7b10ae0f88/black-26.3.0-cp314-cp314-macosx_10_15_x86_64.whl" , hash = "sha256:d0c6f64ead44f4369c66f1339ecf68e99b40f2e44253c257f7807c5a3ef0ca32" , size = 1889209 , upload-time = "2026-03-06T17:46:40.453Z" } ,
{ url = "https://files.pythonhosted.org/packages/93/85/b4d4924ac898adc2e39fc7a923bed99797535bc16dea4bc63944c3903c2b/black-26.3.0-cp314-cp314-macosx_11_0_arm64.whl" , hash = "sha256:ed6f0809134e51ec4a7509e069cdfa42bf996bd0fd1df6d3146b907f36e28893" , size = 1720830 , upload-time = "2026-03-06T17:46:42.009Z" } ,
{ url = "https://files.pythonhosted.org/packages/00/b1/5c0bf29fe5b43fcc6f3e8480c6566d21a02d4e702b3846944e7daa06dea9/black-26.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:cc6ac0ea5dd5fa6311ca82edfa3620cba0ed0426022d10d2d5d39aedbf3e1958" , size = 1787676 , upload-time = "2026-03-06T17:46:43.382Z" } ,
{ url = "https://files.pythonhosted.org/packages/b8/ce/cc8cf14806c144d6a16512272c537d5450f50675d3e8c038705430e90fd9/black-26.3.0-cp314-cp314-win_amd64.whl" , hash = "sha256:884bc0aefa96adabcba0b77b10e9775fd52d4b766e88c44dc6f41f7c82787fc8" , size = 1445406 , upload-time = "2026-03-06T17:46:44.948Z" } ,
{ url = "https://files.pythonhosted.org/packages/cf/bb/049ea0fad9f8bdec7b647948adcf74bb720bd71dcb213decd553e05b2699/black-26.3.0-cp314-cp314-win_arm64.whl" , hash = "sha256:be3bd02aab5c4ab03703172f5530ddc8fc8b5b7bb8786230e84c9e011cee9ca1" , size = 1257945 , upload-time = "2026-03-06T17:46:46.432Z" } ,
{ url = "https://files.pythonhosted.org/packages/39/d7/7360654ba4f8b41afcaeb5aca973cfea5591da75aff79b0a8ae0bb8883f6/black-26.3.0-py3-none-any.whl" , hash = "sha256:e825d6b121910dff6f04d7691f826d2449327e8e71c26254c030c4f3d2311985" , size = 206848 , upload-time = "2026-03-06T17:42:31.133Z" } ,
]
[ [ package ] ]
name = "certifi"
version = "2025.7.14 "
version = "2026.2.25 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41 /certifi-2025.7.14 .tar.gz" , hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995 " , size = 163981 , upload-time = "2025 -07-14T03:29:28.449 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd /certifi-2026.2.25 .tar.gz" , hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7 " , size = 155029 , upload-time = "2026 -02-25T02:54:17.342 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03 /certifi-2025.7.14 -py3-none-any.whl" , hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2 " , size = 162722 , upload-time = "2025 -07-14T03:29:26.863 Z" } ,
{ url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881 /certifi-2026.2.25 -py3-none-any.whl" , hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa " , size = 153684 , upload-time = "2026 -02-25T02:54:15.766 Z" } ,
]
[ [ package ] ]
name = "charset-normalizer"
version = "3.4.2 "
version = "3.4.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d /charset_normalizer-3.4.2 .tar.gz" , hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63 " , size = 126367 , upload-time = "2025-05-02T08:34:42.01 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062 /charset_normalizer-3.4.4 .tar.gz" , hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a " , size = 129418 , upload-time = "2025-10-14T04:42:32.879 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/05/85/4c40d00dcc6284a1c1ad5de5e0996b06f39d8232f1031cd23c2f5c07ee86 /charset_normalizer-3.4.2 -cp311-cp311-macosx_10_9_universal2.whl" , hash = "sha256:b e1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2 " , size = 198794 , upload-time = "2025-05-02T08:32:11.945 Z" } ,
{ url = "https://files.pythonhosted.org/packages/41/d9/7a6c0b9db952598e97e93cbdfcb91bacd89b9b88c7c983250a77c008703c /charset_normalizer-3.4.2 -cp311-cp311-manylinux_2_17_aarch64.manylinux2014 _aarch64.whl" , hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645 " , size = 142846 , upload-time = "2025-05-02T08:32:13.946 Z" } ,
{ url = "https://files.pythonhosted.org/packages/66/82/a37989cda2ace7e37f36c1a8ed16c58cf48965a79c2142713244bf945c89 /charset_normalizer-3.4.2 -cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd ", size = 153350 , upload-time = "2025-05-02T08:32:15.873 Z" } ,
{ url = "https://files.pythonhosted.org/packages/df/68/a576b31b694d07b53807269d05ec3f6f1093e9545e8607121995ba7a8313 /charset_normalizer-3.4.2 -cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8 ", size = 145657 , upload-time = "2025-05-02T08:32:17.283 Z" } ,
{ url = "https://files.pythonhosted.org/packages/92/9b/ad67f03d74554bed3aefd56fe836e1623a50780f7c998d00ca128924a499 /charset_normalizer-3.4.2 -cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f ", size = 147260 , upload-time = "2025-05-02T08:32:18.807 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a6/e6/8aebae25e328160b20e31a7e9929b1578bbdc7f42e66f46595a432f8539e /charset_normalizer-3.4.2 -cp311-cp311-manylinux_2_5_i686.manylinux1_i686 .manylinux_2_17_i686 .manylinux2014_i686 .whl" , hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7 " , size = 149164 , upload-time = "2025-05-02T08:32:20.33 3Z" } ,
{ url = "https://files.pythonhosted.org/packages/8b/f2/b3c2f07dbcc248805f10e67a0262c93308cfa149a4cd3d1fe01f593e5fd2 /charset_normalizer-3.4.2 -cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9 ", size = 144571 , upload-time = "2025-05-02T08:32:21.86 Z" } ,
{ url = "https://files.pythonhosted.org/packages/60/5b/c3f3a94bc345bc211622ea59b4bed9ae63c00920e2e8f11824aa5708e8b7 /charset_normalizer-3.4.2 -cp311-cp311-musllinux_1_2_i686 .whl" , hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544 " , size = 151952 , upload-time = "2025-05-02T08:32:23.434 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e2/4d/ff460c8b474122334c2fa394a3f99a04cf11c646da895f81402ae54f5c42 /charset_normalizer-3.4.2 -cp311-cp311-musllinux_1_2_ppc64le .whl" , hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82 " , size = 155959 , upload-time = "2025-05-02T08:32:24.993 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a2/2b/b964c6a2fda88611a1fe3d4c400d39c66a42d6c169c924818c848f922415 /charset_normalizer-3.4.2 -cp311-cp311-musllinux_1_2_s390x .whl" , hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd 1d96 5a09abe84066f6853b9c0 " , size = 153030 , upload-time = "2025-05-02T08:32:26.435 Z" } ,
{ url = "https://files.pythonhosted.org/packages/59/2e/d3b9811db26a5ebf444bc0fa4f4be5aa6d76fc6e1c0fd537b16c14e849b6 /charset_normalizer-3.4.2 -cp311-cp311-musllinux_1_2_x86_ 64.whl" , hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5 " , size = 148015 , upload-time = "2025-05-02T08:32:28.376 Z" } ,
{ url = "https://files.pythonhosted.org/packages/90/07/c5fd7c11eafd561bb51220d600a788f1c8d77c5eef37ee49454cc5c35575 /charset_normalizer-3.4.2 -cp311-cp311-win32 .whl" , hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a " , size = 98106 , upload-time = "2025-05-02T08:32:30.2 81Z" } ,
{ url = "https://files.pythonhosted.org/packages/a 8/05/5e33dbef7e2f773d672b6d79f10ec633d4a71cd96db6673625838a4fd532 /charset_normalizer-3.4.2 -cp311-cp311-win_amd 64.whl" , hash = "sha256:e53efc7c7cee4c1e70661e2e112ca4 6a5 75f90ed9ae3fef200f2a25e954f4b28 " , size = 105402 , upload-time = "2025-05-02T08:32:32.191 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095 /charset_normalizer-3.4.2 -cp312 -cp312-macosx_10_13_universal 2.whl" , hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7 " , size = 199936 , upload-time = "2025-05-02T08:32:33.712 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3 /charset_normalizer-3.4.2 -cp312 -cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283 b49 8d3 ", size = 143790 , upload-time = "2025-05-02T08:32:35.768 Z" } ,
{ url = "https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3 /charset_normalizer-3.4.2 -cp312 -cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a ", size = 153924 , upload-time = "2025-05-02T08:32:37.284 Z" } ,
{ url = "https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f /charset_normalizer-3.4.2 -cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec21 4", size = 146626 , upload-time = "2025-05-02T08:32:38.80 3Z" } ,
{ url = "https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7 /charset_normalizer-3.4.2 -cp312-cp312-manylinux_2_17_x86_ 64.manylinux2014_x86_ 64.whl" , hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a " , size = 148567 , upload-time = "2025-05-02T08:32:40.251 Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cb b868e4595ee30 /charset_normalizer-3.4.2 -cp312-cp312-manylinux_2_5_i686.manylinux1_i686 .manylinux_2_17_i686 .manylinux2014_i686 .whl" , hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd " , size = 150957 , upload-time = "2025-05-02T08:32:41.705 Z" } ,
{ url = "https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302 /charset_normalizer-3.4.2 -cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981 ", size = 145408 , upload-time = "2025-05-02T08:32:43.709 Z" } ,
{ url = "https://files.pythonhosted.org/packages/58/aa/8904b84bc808 4ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8 /charset_normalizer-3.4.2 -cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c ", size = 153399 , upload-time = "2025-05-02T08:32:46.197 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605 /charset_normalizer-3.4.2 -cp312-cp312-musl linux_1 _2_ppc64le .whl" , hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b " , size = 156815 , upload-time = "2025-05-02T08:32:48.105 Z" } ,
{ url = "https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb /charset_normalizer-3.4.2 -cp312-cp312-musl linux_1 _2_s 390x .whl" , hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d " , size = 154537 , upload-time = "2025-05-02T08:32:49.719 Z" } ,
{ url = "https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c 0e23b0562d64af46a06aae4 /charset_normalizer-3.4.2 -cp312-cp312-musllinux_1_2_x86_ 64.whl" , hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282d cb0 6b221aab59 f" , size = 149565 , upload-time = "2025-05-02T08:32:51.40 4Z" } ,
{ url = "https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a /charset_normalizer-3.4.2 -cp312-cp312-win32 .whl" , hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6 c" , size = 98357 , upload-time = "2025-05-02T08:32:53.079 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc /charset_normalizer-3.4.2 -cp312-cp312-win_amd64 .whl" , hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e " , size = 105776 , upload-time = "2025-05-02T08:32:54.573 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c /charset_normalizer-3.4.2 -cp313 -cp313 -macosx_10_13_universal2 .whl" , hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8 e9d bcf0 " , size = 199622 , upload-time = "2025-05-02T08:32:56.363 Z" } ,
{ url = "https://files.pythonhosted.org/packages/0 4/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de /charset_normalizer-3.4.2 -cp313 -cp313 -many linux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf ", size = 143435 , upload-time = "2025-05-02T08:32:58.551 Z" } ,
{ url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284 /charset_normalizer-3.4.2 -cp313 -cp313 -many linux_2_17_ppc64le.manylinux2014_ppc64le.whl" , hash = "sha256:3fddb7e2c84ac87ac3a947cb4 e66 d143ca5863ef48e4a5ecb83bd48619e4634e ", size = 153653 , upload-time = "2025-05-02T08:33:00.342 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659 /charset_normalizer-3.4.2 -cp313 -cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl" , hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1 ", size = 146231 , upload-time = "2025-05-02T08:33:02.081 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8 /charset_normalizer-3.4.2 -cp313 -cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c ", size = 148243 , upload-time = "2025-05-02T08:33:04.063 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb /charset_normalizer-3.4.2 -cp313 -cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686 .whl" , hash = "sha256:e 635 b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691 " , size = 150442 , upload-time = "2025-05-02T08:33:06.418 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6 7/7c/ a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c /charset_normalizer-3.4.2 -cp313-cp313-musllinux_1_2_aarch64 .whl" , hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0 " , size = 145147 , upload-time = "2025-05-02T08:33:08.183 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595 /charset_normalizer-3.4.2 -cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b ", size = 153057 , upload-time = "2025-05-02T08:33:09.986 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461 /charset_normalizer-3.4.2 -cp313-cp313-musllinux_1_2_ppc64le.whl" , hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff ", size = 156454 , upload-time = "2025-05-02T08:33:11.814 Z" } ,
{ url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573 /charset_normalizer-3.4.2 -cp313-cp313-musllinux_1_2_s390x.whl" , hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b ", size = 154174 , upload-time = "2025-05-02T08:33 :13 .707 Z" } ,
{ url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff /charset_normalizer-3.4.2 -cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148 ", size = 149166 , upload-time = "2025-05-02T08:33:15.458 Z" } ,
{ url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c /charset_normalizer-3.4.2 -cp313-cp313-win32.whl" , hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7 ", size = 98064 , upload-time = "2025-05-02T08:33:17. 06Z" } ,
{ url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb /charset_normalizer-3.4.2 -cp313-cp313-win_amd64.whl" , hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980 ", size = 105641 , upload-time = "2025-05-02T08:33:18.753 Z" } ,
{ url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl" , hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af 0", size = 52626 , upload-time = "2025-05-02T08:34:40.053 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59 /charset_normalizer-3.4.4 -cp311-cp311-macosx_10_9_universal2.whl" , hash = "sha256:6 e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8 " , size = 206988 , upload-time = "2025-10-14T04:40:33.79 Z" } ,
{ url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011 /charset_normalizer-3.4.4 -cp311-cp311-manylinux2014_aarch64. manylinux_2_17_aarch64.manylinux_2_28 _aarch64.whl" , hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0 " , size = 147324 , upload-time = "2025-10-14T04:40:34.961 Z" } ,
{ url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772 /charset_normalizer-3.4.4 -cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl" , hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3 ", size = 142742 , upload-time = "2025-10-14T04:40:36.105 Z" } ,
{ url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f /charset_normalizer-3.4.4 -cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc ", size = 160863 , upload-time = "2025-10-14T04:40:37.188 Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442 /charset_normalizer-3.4.4 -cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl" , hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897 ", size = 157837 , upload-time = "2025-10-14T04:40:38.435 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea /charset_normalizer-3.4.4 -cp311-cp311-manylinux2014_x86_64 .manylinux_2_17_x86_64 .manylinux_2_28_x86_64 .whl" , hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381 " , size = 151550 , upload-time = "2025-10-14T04:40:40.05 3Z" } ,
{ url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1 /charset_normalizer-3.4.4 -cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815 ", size = 149162 , upload-time = "2025-10-14T04:40:41.163 Z" } ,
{ url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75 /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_aarch64 .whl" , hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0 " , size = 150019 , upload-time = "2025-10-14T04:40:42.276 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_armv7l .whl" , hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161 " , size = 143310 , upload-time = "2025-10-14T04:40:43.439 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7 /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_ppc64le .whl" , hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a6 1d97 5a249930dd5e2a4 " , size = 162022 , upload-time = "2025-10-14T04:40:44.547 Z" } ,
{ url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3 /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_riscv 64.whl" , hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89 " , size = 149383 , upload-time = "2025-10-14T04:40:46.018 Z" } ,
{ url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384 /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_s390x .whl" , hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569 " , size = 159098 , upload-time = "2025-10-14T04:40:47.0 81Z" } ,
{ url = "https://files.pythonhosted.org/packages/d 8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c /charset_normalizer-3.4.4 -cp311-cp311-musllinux_1_2_x86_ 64.whl" , hash = "sha256:ebf3e58c7ec8a8bed6d6 6a75d7fb37b55e5015b03ceae72a8e7c74495551e224 " , size = 152991 , upload-time = "2025-10-14T04:40:48.246 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf /charset_normalizer-3.4.4 -cp311 -cp311-win3 2.whl" , hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a " , size = 99456 , upload-time = "2025-10-14T04:40:49.376 Z" } ,
{ url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a /charset_normalizer-3.4.4 -cp311 -cp311-win_amd64.whl" , hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34d b48d016 ", size = 106978 , upload-time = "2025-10-14T04:40:50.844 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5 /charset_normalizer-3.4.4 -cp311 -cp311-win_arm64.whl" , hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1 ", size = 99969 , upload-time = "2025-10-14T04:40:52.272 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2 /charset_normalizer-3.4.4 -cp312-cp312-macosx_10_13_universal2.whl" , hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd39 4", size = 208425 , upload-time = "2025-10-14T04:40:53.35 3Z" } ,
{ url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df /charset_normalizer-3.4.4 -cp312-cp312-manylinux2014_aarch64. manylinux_2_17_aarch 64.manylinux_2_28_aarch 64.whl" , hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25 " , size = 148162 , upload-time = "2025-10-14T04:40:54.558 Z" } ,
{ url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285 b83 688 /charset_normalizer-3.4.4 -cp312-cp312-manylinux2014_armv7l .manylinux_2_17_armv7l .manylinux_2_31_armv7l .whl" , hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef " , size = 144558 , upload-time = "2025-10-14T04:40:55.677 Z" } ,
{ url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe /charset_normalizer-3.4.4 -cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d ", size = 161497 , upload-time = "2025-10-14T04:40:57.217 Z" } ,
{ url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc7 4aca 196ba5ccfcca8242d0fb64146d4d3183ff1 /charset_normalizer-3.4.4 -cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl" , hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8 ", size = 159240 , upload-time = "2025-10-14T04:40:58.358 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d /charset_normalizer-3.4.4 -cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.many linux_2 _28_x86_64 .whl" , hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86 " , size = 153471 , upload-time = "2025-10-14T04:40:59.468 Z" } ,
{ url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698 /charset_normalizer-3.4.4 -cp312-cp312-many linux_2_31_riscv64.manylinux _2_39_riscv64 .whl" , hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a " , size = 150864 , upload-time = "2025-10-14T04:41:00.623 Z" } ,
{ url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b61979 0e9 236557ca59fc40e0e3cebe6f40 /charset_normalizer-3.4.4 -cp312-cp312-musllinux_1_2_aarch 64.whl" , hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78 cb6bc1d3be5 f" , size = 150647 , upload-time = "2025-10-14T04:41:01.75 4Z" } ,
{ url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4 /charset_normalizer-3.4.4 -cp312-cp312-musllinux_1_2_armv7l .whl" , hash = "sha256:5 dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354c c" , size = 145110 , upload-time = "2025-10-14T04:41:03.231 Z" } ,
{ url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd /charset_normalizer-3.4.4 -cp312-cp312-musllinux_1_2_ppc64le .whl" , hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf " , size = 162839 , upload-time = "2025-10-14T04:41:04.715 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23 /charset_normalizer-3.4.4 -cp312 -cp312 -musllinux_1_2_riscv64 .whl" , hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709 e9bcb5b63f5b23068356a15 " , size = 150667 , upload-time = "2025-10-14T04:41:05.827 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e 4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2 /charset_normalizer-3.4.4 -cp312 -cp312 -musl linux_1_2_s390x.whl" , hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9 ", size = 160535 , upload-time = "2025-10-14T04:41:06.938 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957 /charset_normalizer-3.4.4 -cp312 -cp312 -musl linux_1_2_x86_64.whl" , hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09 e67 d1d454c762cf642e6e1586e0 ", size = 154816 , upload-time = "2025-10-14T04:41:08.101 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1 /charset_normalizer-3.4.4 -cp312 -cp312-win32.whl" , hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26 ", size = 99694 , upload-time = "2025-10-14T04:41:09.23 Z" } ,
{ url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e /charset_normalizer-3.4.4 -cp312 -cp312-win_amd64.whl" , hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525 ", size = 107131 , upload-time = "2025-10-14T04:41:10.467 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc /charset_normalizer-3.4.4 -cp312 -cp312-win_arm64 .whl" , hash = "sha256:376bec83a 63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3 " , size = 100390 , upload-time = "2025-10-14T04:41:11.915 Z" } ,
{ url = "https://files.pythonhosted.org/packages/9 7/45/4b3 a1239 bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714 /charset_normalizer-3.4.4 -cp313-cp313-macosx_10_13_universal2 .whl" , hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794 " , size = 208091 , upload-time = "2025-10-14T04:41:13.346 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e /charset_normalizer-3.4.4 -cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed ", size = 147936 , upload-time = "2025-10-14T04:41:14.461 Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2 /charset_normalizer-3.4.4 -cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl" , hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72 ", size = 144180 , upload-time = "2025-10-14T04:41:15.588 Z" } ,
{ url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99 /charset_normalizer-3.4.4 -cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328 ", size = 161346 , upload-time = "2025-10-14T04:41 :16 .738 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5 /charset_normalizer-3.4.4 -cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl" , hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede ", size = 158874 , upload-time = "2025-10-14T04:41:17.923 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922 /charset_normalizer-3.4.4 -cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894 ", size = 153076 , upload-time = "2025-10-14T04:41:19.1 06Z" } ,
{ url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2 /charset_normalizer-3.4.4 -cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1 ", size = 150601 , upload-time = "2025-10-14T04:41:20.245 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff1604349 0", size = 150376 , upload-time = "2025-10-14T04:41:21.398 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl" , hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44" , size = 144825 , upload-time = "2025-10-14T04:41:22.583Z" } ,
{ url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl" , hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133" , size = 162583 , upload-time = "2025-10-14T04:41:23.754Z" } ,
{ url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl" , hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3" , size = 150366 , upload-time = "2025-10-14T04:41:25.27Z" } ,
{ url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl" , hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e" , size = 160300 , upload-time = "2025-10-14T04:41:26.725Z" } ,
{ url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc" , size = 154465 , upload-time = "2025-10-14T04:41:28.322Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl" , hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac" , size = 99404 , upload-time = "2025-10-14T04:41:29.95Z" } ,
{ url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl" , hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14" , size = 107092 , upload-time = "2025-10-14T04:41:31.188Z" } ,
{ url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl" , hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2" , size = 100408 , upload-time = "2025-10-14T04:41:32.624Z" } ,
{ url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl" , hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd" , size = 207746 , upload-time = "2025-10-14T04:41:33.773Z" } ,
{ url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb" , size = 147889 , upload-time = "2025-10-14T04:41:34.897Z" } ,
{ url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl" , hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e" , size = 143641 , upload-time = "2025-10-14T04:41:36.116Z" } ,
{ url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14" , size = 160779 , upload-time = "2025-10-14T04:41:37.229Z" } ,
{ url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl" , hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191" , size = 159035 , upload-time = "2025-10-14T04:41:38.368Z" } ,
{ url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838" , size = 152542 , upload-time = "2025-10-14T04:41:39.862Z" } ,
{ url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6" , size = 149524 , upload-time = "2025-10-14T04:41:41.319Z" } ,
{ url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl" , hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e" , size = 150395 , upload-time = "2025-10-14T04:41:42.539Z" } ,
{ url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl" , hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c" , size = 143680 , upload-time = "2025-10-14T04:41:43.661Z" } ,
{ url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl" , hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090" , size = 162045 , upload-time = "2025-10-14T04:41:44.821Z" } ,
{ url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl" , hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152" , size = 149687 , upload-time = "2025-10-14T04:41:46.442Z" } ,
{ url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl" , hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828" , size = 160014 , upload-time = "2025-10-14T04:41:47.631Z" } ,
{ url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl" , hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec" , size = 154044 , upload-time = "2025-10-14T04:41:48.81Z" } ,
{ url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl" , hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9" , size = 99940 , upload-time = "2025-10-14T04:41:49.946Z" } ,
{ url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl" , hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c" , size = 107104 , upload-time = "2025-10-14T04:41:51.051Z" } ,
{ url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl" , hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2" , size = 100743 , upload-time = "2025-10-14T04:41:52.122Z" } ,
{ url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl" , hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f" , size = 53402 , upload-time = "2025-10-14T04:42:31.76Z" } ,
]
[ [ package ] ]
name = "click"
version = "8.2.2 "
version = "8.3.1 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama" , marker = "sys_platform == 'win32'" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/e9/87/105111999772ec9730e3d4d910c723ea9763ece2ec441533a5cea1e87e3c /click-8.2.2 .tar.gz" , hash = "sha256:068616e6ef9705a07b6db727cb9c248f4eb9dae437a30239f56fa94b18b852ef " , size = 263977 , upload-time = "2025-08-02T02:23:41.102 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0 /click-8.3.1 .tar.gz" , hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a " , size = 295065 , upload-time = "2025-11-15T20:45:42.706 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ec/85/e7297e34133ae1cfde3bffd30c24e1ef055248251baa877834e048687a28 /click-8.2.2 -py3-none-any.whl" , hash = "sha256:52e1e9f5d3db8c85aa76968c7c67ed41ddbacb167f43201511c8fd61eb5ba2ca " , size = 103900 , upload-time = "2025-08-02T02:23:39.29 9Z" } ,
{ url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b /click-8.3.1 -py3-none-any.whl" , hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6 " , size = 108274 , upload-time = "2025-11-15T20:45:41.13 9Z" } ,
]
[ [ package ] ]
@@ -132,116 +157,128 @@ wheels = [
[ [ package ] ]
name = "coverage"
version = "7.10.1 "
version = "7.13.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/87/0e/66dbd4c6a7f0758a8d18044c048779ba21fb94856e1edcf764bd5403e710 /coverage-7.10.1 .tar.gz" , hash = "sha256:ae2b4856f29ddfe827106794f3589949a57da6f0d38ab01e24ec35107979ba57 " , size = 819938 , upload-time = "2025 -07-27T14:13:39.045 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65 /coverage-7.13.4 .tar.gz" , hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91 " , size = 827239 , upload-time = "2026 -02-09T12:59:03.86 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/20/8e/ef08811 2bd1b26e2aa931ee186992b3e42c222c64f33e381432c8ee52aae /coverage-7.10.1 -cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:b45e2f9d5b0b5c1977cb4feb5f594be60eb121106f8900348e29331f553a726f " , size = 214747 , upload-time = "2025 -07-27T14:11:18.217 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2d/76/a1e46f3c6e0897758eb43af88bb3c763cb005f4950769f7b553e22aa5f89 /coverage-7.10.1 -cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:3a7a4d74cb0f5e3334f9aa26af7016ddb94fb4bfa11b4a573d8e98ecba8c34f 1" , size = 215128 , upload-time = "2025 -07-27T14:11:19.706 Z" } ,
{ url = "https://files.pythonhosted.org/packages/78/4d/903bafb371a8c887826ecc30d3977b65dfad0e1e66aa61b7e173de0828b0 /coverage-7.10.1 -cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:d4b0aab55ad60ead26159ff12b538c85fbab731a5e3411c642b46c3525863437 " , size = 245140 , upload-time = "2025 -07-27T14:11:21.261 Z" } ,
{ url = "https://files.pythonhosted.org/packages/55/f1/1f8f09536f38394a8698dd08a0e9608a512eacee1d3b771e2d06397f77bf /coverage-7.10.1 -cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:dcc93488c9ebd229be6ee1f0d9aad90da97b33ad7e2912f5495804d78a3cd6b 7" , size = 246977 , upload-time = "2025 -07-27T14:11:23.15 Z" } ,
{ url = "https://files.pythonhosted.org/packages/57/cc/ed6bbc5a3bdb36ae1bca900bbbfdcb23b260ef2767a7b2dab38b92f61adf /coverage-7.10.1 -cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:aa309df995d020f3438407081b51ff527171cca6772b33cf8f85344b8b4b877 0" , size = 249140 , upload-time = "2025 -07-27T14:11:24.743 Z" } ,
{ url = "https://files.pythonhosted.org/packages/10/f5/e881ade2d8e291b60fa1d93d6d736107e940144d80d21a0d4999cff3642f /coverage-7.10.1 -cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:cfb8b9d8855c8608f9747602a48ab525b1d320ecf0113994f6df23160af68262 ", size = 246869 , upload-time = "2025 -07-27T14:11:26.15 6Z" } ,
{ url = "https://files.pythonhosted.org/packages/53/b9/6a5665cb8996e3cd341d184bb11e2a8edf01d8dadcf44eb1e742186cf243 /coverage-7.10.1 -cp311-cp311-musllinux_1_2_i686.whl" , hash = "sha256:320d86da829b012982b414c7cdda65f5d358d63f764e0e4e54b33097646f39a 3", size = 244899 , upload-time = "2025 -07-27T14:11:27.622 Z" } ,
{ url = "https://files.pythonhosted.org/packages/27/11/24156776709c4e25bf8a33d6bb2ece9a9067186ddac19990f6560a7f8130 /coverage-7.10.1 -cp311-cp311-musllinux_1_2_x86_ 64.whl" , hash = "sha256:dc60ddd483c556590da1d9482a4518292eec36dd0e 1e849 6966759a1f282bcd0 " , size = 245507 , upload-time = "2025 -07-27T14:11:29.544 Z" } ,
{ url = "https://files.pythonhosted.org/packages/43/db/a6f0340b7d6802a79928659c9a32bc778ea420e87a61b568d68ac36d45a8 /coverage-7.10.1 -cp311-cp311-win32 .whl" , hash = "sha256:4fcfe294f95b44e4754da5b58be750396f2b1caca8f9a0e78588e3ef85f8b8be " , size = 217167 , upload-time = "2025 -07-27T14:11:31.349 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f5/6f/1990eb4fd05cea4cfabdf1d587a997ac5f9a8bee883443a1d519a2a848c9 /coverage-7.10.1 -cp311-cp311-win_amd64 .whl" , hash = "sha256:efa23166da3fe2915f8ab452dde40319ac84dc357f635737174a08dbd912980c " , size = 218054 , upload-time = "2025 -07-27T14:11:33.202 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b4/4d/5e061d6020251b20e9b4303bb0b7900083a1a384ec4e5db326336c1c4 abd/coverage-7.10.1 -cp311-cp311-win_arm 64.whl" , hash = "sha256:d12b15a8c3759e2bb580ffa423ae54be4f184cf23beffcbd641f4fe6e1584293 " , size = 216483 , upload-time = "2025 -07-27T14:11:34.663 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a 5/3f/b051feeb292400bd22d071fdf933b3ad389a8cef5c80c7866ed0c7414b9e /coverage-7.10.1 -cp312 -cp312 -macosx_10_13 _x86_64.whl" , hash = "sha256:6b7dc7f0a75a7eaa4584e5843c873c561b12602439d2351ee28c7478186c4da4 " , size = 214934 , upload-time = "2025 -07-27T14:11:36.096 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f 8/e 4/a61b27d5c4c2d185bdfb0bfe9d15ab4ac4f0073032665544507429ae60eb /coverage-7.10.1 -cp312 -cp312-macosx_11_0_arm64 .whl" , hash = "sha256:607f82389f0ecafc565813aa201a5cade04f897603750028dd660fb01797265e " , size = 215173 , upload-time = "2025 -07-27T14:11:38.005 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8a/01/40a6ee05b60d02d0bc53742ad4966e39dccd450aafb48c535a64390a3552/coverage-7.10.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:f7da31a1ba31f1c1d4d5044b7c5813878adae1f3af8f4052d679cc493c732 8f4 ", size = 246190 , upload-time = "2025 -07-27T14:11:39.887 Z" } ,
{ url = "https://files.pythonhosted.org/packages/11/ef/a28d64d702eb583c377255047281305dc5a5cfbfb0ee36e721f78255adb6 /coverage-7.10.1 -cp312 -cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:51fe93f3fe4f5d8483d51072fddc65e717a175490804e1942c975a 68e 04bf97a ", size = 248618 , upload-time = "2025 -07-27T14:11:41.841 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6a/ad/73d018bb0c8317725370c79d69b5c6e0257df84a3b9b781bda27a438a3be /coverage-7.10.1 -cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:3e59d00830da411a1feef6ac828b90bbf74c9b6a8e87b8ca37964925bba76dbe ", size = 250081 , upload-time = "2025 -07-27T14:11:43.705 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2 d/dd/496adfbbb4503ebca5d5b2de8bed5ec00c0a76558ffc5b834fd404166bc9 /coverage-7.10.1 -cp312-cp312-musllinux_1_2_aarch 64.whl" , hash = "sha256:924563481c27941229cb4e16eefacc35da28563e80791b3ddc5597b062a5c386 " , size = 247990 , upload-time = "2025 -07-27T14:11:45.244 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1 8/3c/a9331a7982facfac0d98a4a87b36ae666fe4257d0f00961a3a9ef73e015d /coverage-7.10.1 -cp312-cp312-musl linux_1 _2_i686.whl" , hash = "sha256:ca79146ee421b259f8131f153102220b84d1a5e6fb9c8aed13b3badfd1796de6 " , size = 246191 , upload-time = "2025 -07-27T14:11:47.093 Z" } ,
{ url = "https://files.pythonhosted.org/packages/62/0c/75345895013b83f7afe92ec595e15a9a525ede17491677ceebb2ba5c3d85 /coverage-7.10.1 -cp312-cp312-musl linux_1 _2_x86_64.whl" , hash = "sha256:2b225a06d227f23f386fdc0eab471506d9e644be699424814acc7d114595495f " , size = 247400 , upload-time = "2025 -07-27T14:11:48.643 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e2/a9/98b268cfc5619ef9df1d5d34fee408ecb1542d9fd43d467e5c2f28668cd4 /coverage-7.10.1 -cp312-cp312-win32.whl" , hash = "sha256:5ba9a8770effec5baaaab1567be916c87d8eea0c9ad11253722d86874d885ec a", size = 217338 , upload-time = "2025 -07-27T14:11:50.258 Z" } ,
{ url = "https://files.pythonhosted.org/packages/fe/31/22a5440e4d1451f253c5cd69fdcead65e92ef08cd4ec237b8756dc0b20a7 /coverage-7.10.1 -cp312-cp312-win_amd64.whl" , hash = "sha256:9eb245a8d8dd0ad73b4062135a251ec55086fbc2c42e0eb9725a9b553fba18a 3", size = 218125 , upload-time = "2025 -07-27T14:11:52.034 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d6/2b/40d9f0ce7ee839f08a43c5bfc9d05cec28aaa7c9785837247f96cbe490b9 /coverage-7.10.1 -cp312-cp312-win_arm64.whl" , hash = "sha256:7718060dd4434cc719803a5e526838a5d66e4efa5dc46d2b25c21965a9c6fcc4 ", size = 216523 , upload-time = "2025 -07-27T14:11:53.965 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ef/72/135ff5fef09b1ffe78dbe6fcf1e16b2e564cd35faeacf3d63d60d887f12d /coverage-7.10.1 -cp313 -cp313 -macosx_10_13_x86_ 64.whl" , hash = "sha256:ebb08d0867c5a25dffa4823377292a0ffd7aaafb218b5d4e2e106378b1061e39 " , size = 214960 , upload-time = "2025 -07-27T14:11:55.959 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b1/aa/73a5d1a6fc08ca709a8177825616aa95ee6bf34d522517c2595484a3e6c 9/coverage-7.10.1 -cp313 -cp313 -macos x_11 _0_arm64 .whl" , hash = "sha256:f32a95a83c2e17422f67af922a89422cd24c6fa94041f083dd0bb4f6057d0bc7 " , size = 215220 , upload-time = "2025 -07-27T14:11:57 .89 9Z" } ,
{ url = "https://files.pythonhosted.org/packages/8d/40/3124fdd45ed3772a42fc73ca41c091699b38a2c3bd4f9cb564162378e8b6 /coverage-7.10.1 -cp313 -cp313 -manylinux1_i686.many linux_2 _28_i686.manylinux_2_5_i686.whl" , hash = "sha256:c4c746d11c8aba4b9f58ca8bfc6fbfd0da4efe7960ae5540d1a1b13655ee8892 ", size = 245772 , upload-time = "2025 -07-27T14:12:00.422 Z" } ,
{ url = "https://files.pythonhosted.org/packages/42/62/a77b254822efa8c12ad59e8039f2bc3df56dc162ebda55e1943e35ba31a5 /coverage-7.10.1 -cp313 -cp313 -manylinux1_x86_64.many linux_2 _28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:7f39edd 52c 23e5c7ed94e0e4bf088928029edf86ef10b95413e5ea670c5e92d7 ", size = 248116 , upload-time = "2025 -07-27T14:12:03.099 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1d/01/8101f062f472a3a6205b458d18ef0444a63ae5d36a8a5ed5dd0f6167f4d b/coverage-7.10.1 -cp313 -cp313 -manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:ab6e19b684981d0cd968906e293d5628e89faacb27977c92f3600b201926b994 ", size = 249554 , upload-time = "2025 -07-27T14:12:04.668 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8f/7b/e51bc61573e71ff7275a4f167aecbd16cb010aefdf54bcd8b0a133391263 /coverage-7.10.1 -cp313 -cp313-musllinux_1_2_aarch64 .whl" , hash = "sha256:5121d8cf0eacb16133501455d216bb5f99899ae2f52d394fe45d59229e6611d0 " , size = 247766 , upload-time = "2025 -07-27T14:12:06.234 Z" } ,
{ url = "https://files.pythonhosted.org/packages/4b/71/1c96d66a51d4204a9d6d12df53c4071d87e110941a2a1fe94693192262f5 /coverage-7.10.1 -cp313 -cp313-musllinux_1_2_i686 .whl" , hash = "sha256:df1c742ca6f46a6f6cbcaef9ac694dc2cb1260d30a6a2f5c68c5f5bcfee1cfd7 " , size = 245735 , upload-time = "2025 -07-27T14:12:08.305 Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/d5/efbc2ac4d35ae2f22ef6df2ca084c60e13bd9378be68655e3268c80349ab /coverage-7.10.1 -cp313 -cp313-musllinux_1_2_x86_ 64.whl" , hash = "sha256:40f9a38676f9c073bf4b9194707aa1eb97dca0e22cc3766d83879d72500132c7 " , size = 247118 , upload-time = "2025 -07-27T14:12:09.903 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d1 /22/073848352bec28ca65f2b6816b892fcf9a31abbef07b868487ad15dd55f1 /coverage-7.10.1 -cp313-cp313-win32 .whl" , hash = "sha256:2348631f049e884839553b9974f0821d39241c6ffb01a418efce434f7eba0fe7 " , size = 217381 , upload-time = "2025 -07-27T14:12:11.535 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b7/df/df6a0ff33b042f000089bd11b6bb034bab073e2ab64a56e78ed882cba55d /coverage-7.10.1 -cp313-cp313-win_amd 64.whl" , hash = "sha256:4072b31361b0d6d23f750c524f694e1a417c1220a30d3ef02741eed28520c48e " , size = 218152 , upload-time = "2025 -07-27T14:12:13.182 Z" } ,
{ url = "https://files.pythonhosted.org/packages/30/e3/5085ca849a40ed6b47cdb8f65471c2f754e19390b5a12fa8abd25cbfaa8f /coverage-7.10.1 -cp313-cp313-win_arm64.whl" , hash = "sha256:3e31dfb8271937cab9425f19259b1b1d1f556790e98eb266009e7a61d337b6d4 ", size = 216559 , upload-time = "2025 -07-27T14:12:14.8 07Z" } ,
{ url = "https://files.pythonhosted.org/packages/cc/93/58714efbfdeb547909feaabe1d67b2bdd59f0597060271b9c548d5efb529 /coverage-7.10.1 -cp313-cp313t -macosx_10_13_x86_64.whl" , hash = "sha256:1c4f679c6b573a5257af6012f167a45be4c749c9925fd44d5178fd641ad8bf72 ", size = 215677 , upload-time = "2025 -07-27T14:12:16.68 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c0/0c/18eaa5897e7e8cb3f8c45e563e23e8a85686b4585e29d53cacb6bc9cb340 /coverage-7.10.1 -cp313-cp313t -macosx_11_0_arm64.whl" , hash = "sha256:871ebe8143da284bd77b84a9136200bd638be253618765d21a1fce71006d94af ", size = 215899 , upload-time = "2025 -07-27T14:12:18.758 Z" } ,
{ url = "https://files.pythonhosted.org/packages/84/c1/9d1affacc3c75b5a184c140377701bbf14fc94619367f07a269cd9e4fed6 /coverage-7.10.1 -cp313-cp313t -manylinux1_i686 .manylinux_2_28_i686 .manylinux_2_5_i686 .whl" , hash = "sha256:998c4751dabf7d29b30594af416e4bf5091f11f92a8d88eb1512c7ba136d1ed7 " , size = 257140 , upload-time = "2025 -07-27T14:12:20.357 Z" } ,
{ url = "https://files.pythonhosted.org/packages/3d/0f/339bc6b8fa968c346df346068cca1f24bdea2ddfa93bb3dc2e7749730962 /coverage-7.10.1 -cp313-cp313t -manylinux1_x86_64.manylinux_2_28_x86_ 64.manylinux_2_5_x86_ 64.whl" , hash = "sha256:780f750a25e7749d0af6b3631759c2c14f45de209f3faaa2398312d1c7a22759 " , size = 259005 , upload-time = "2025 -07-27T14:12:22.007 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c8/22/89390864b92ea7c909079939b71baba7e5b42a76bf327c1d615bd829ba5 7/coverage-7.10.1 -cp313-cp313t -manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:590bdba9445df4763bdbebc928d8182f094c1f3947a8dc0fc82ef014dbdd8324 ", size = 261143 , upload-time = "2025 -07-27T14:12:23.74 6Z" } ,
{ url = "https://files.pythonhosted.org/packages/2c/56/3d04d89017c0c41c7a71bd69b29699d919b6bbf2649b8b2091240b97dd6a /coverage-7.10.1 -cp313-cp313t -musllinux_1_2_aarch64 .whl" , hash = "sha256:9b2df80cb6a2af86d300e70acb82e9b79dab2c1e6971e44b78dbfc1a1e736b5 3" , size = 258735 , upload-time = "2025 -07-27T14:12:25.73 Z" } ,
{ url = "https://files.pythonhosted.org/packages/cb/40/312252c8afa5ca781063a09d931f4b9409dc91526cd0b5a2b84143ffafa2 /coverage-7.10.1 -cp313-cp313t -musllinux_1_2_i686 .whl" , hash = "sha256:d6a558c2725bfb6337bf57c1cd366c13798bfd3bfc9e3dd1f4a6f6fc95a4605f " , size = 256871 , upload-time = "2025 -07-27T14:12:27.767 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1f/2b/564947d5dede068215aaddb9e05638aeac079685101462218229ddea9113 /coverage-7.10.1 -cp313-cp313t -musllinux_1_2_x86_ 64.whl" , hash = "sha256:e6150d167f32f2a54690e572e0a4c90296fb000a18e9b26ab81a6489e24e78dd " , size = 257692 , upload-time = "2025 -07-27T14:12:29.347 Z" } ,
{ url = "https://files.pythonhosted.org/packages/93/1b/c8a867ade85cb26d802aea2209b9c2c80613b9c122baa8c8ecea6799648f /coverage-7.10.1 -cp313-cp313t-win32 .whl" , hash = "sha256:d946a0c067aa88be4a593aad1236493313bafaa27e2a2080bfe88db827972f3c " , size = 218059 , upload-time = "2025 -07-27T14:12:31.076 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a1/fe/cd4ab40570ae83a516bf5e754ea4388aeedd48e660e40c50b7713ed4f93 0/coverage-7.10.1 -cp313-cp313t -win_amd64 .whl" , hash = "sha256:e37c72eaccdd5ed1130c67a92ad38f5b2af66eeff7b0abe29534225db2ef7b18 " , size = 219150 , upload-time = "2025 -07-27T14:12:32.746 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8d/16/6e5ed5854be6d70d0c39e9cb9dd2449f2c8c34455534c32c1a508c7dbdb5 /coverage-7.10.1 -cp313-cp313t -win_ar m64.whl" , hash = "sha256:89ec0ffc215c590c732918c95cd02b55c7d0f569d76b90bb1a5e78aa340618e4 " , size = 217014 , upload-time = "2025 -07-27T14:12:34.406 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5 4/8e/6d0bfe9c3d7121cf936c5f8b03e8c3da1484fb801703127dba20fb8bd3 c7/coverage-7.10.1 -cp314 -cp314-macosx_10_13_x86_ 64.whl" , hash = "sha256:166d89c57e877e93d8827dac32cedae6b0277ca684c6511497311249f35a280c " , size = 214951 , upload-time = "2025 -07-27T14:12:36.069 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f 2/29/e3e51a8c653cf2174c60532aafeb5065cea0911403fa144c9abe39790308 /coverage-7.10.1 -cp314 -cp314 -macosx_11_0_arm 64.whl" , hash = "sha256:bed4a2341b33cd1a7d9ffc47df4a78ee61d3416d43b4adc9e18b7d266650b83e " , size = 215229 , upload-time = "2025 -07-27T14:12:37.75 9Z" } ,
{ url = "https://files.pythonhosted.org/packages/e0/59/3c972080b2fa18b6c4510201f6d4dc87159d450627d062cd9ad051134062 /coverage-7.10.1 -cp314 -cp314 -manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:ddca1e4f5f4c67980533df01430184c19b5359900e080248bbf4ed6789584d8b ", size = 245738 , upload-time = "2025 -07-27T14:12:39.453 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2e/04/fc0d99d3f809452654e958e1788454f6e27b34e43f8f8598191c8ad1353 7/coverage-7.10.1 -cp314 -cp314 -manylinux1_x86_64 .manylinux_2_28_x86_64 .manylinux_2_5_x86_64 .whl" , hash = "sha256:37b69226001d8b7de7126cad7366b0778d36777e4d788c66991455ba817c5b41 " , size = 248045 , upload-time = "2025 -07-27T14:12:41.387 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5e/2e/afcbf599e77e0dfbf4c97197747250d13d397d 27e 185b93987d9eaac053d/coverage-7.10.1-cp314-cp314-manylinux2014_aarch 64.manylinux_2_17_aarch 64.manylinux_2_28_aarch 64.whl" , hash = "sha256:b2f22102197bcb1722691296f9e589f02b616f874e54a209284dd7b9294b0b7f " , size = 249666 , upload-time = "2025 -07-27T14:12:43.056 Z" } ,
{ url = "https://files.pythonhosted.org/packages/6e/ae/bc47f7f8ecb7a06cbae2bf86a6fa20f479dd902bc80f57cff7730438059d /coverage-7.10.1 -cp314 -cp314-musllinux_1_2_aarch64.whl" , hash = "sha256:1e0c768b0f9ac5839dac5cf88992a4bb459e488ee8a1f8489af4cb33b1af00f1 ", size = 247692 , upload-time = "2025 -07-27T14:12:44.83 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b6/26/cbfa3092d31ccba8ba7647e4d25753263e818b4547eba446b113d7d1efdf /coverage-7.10.1 -cp314 -cp314-musllinux_1_2_i686 .whl" , hash = "sha256:991196702d 5e0 b120a8fe f26 64e1b9c333a81d36d5f6bcf6b225c0cf8b0451a2 " , size = 245536 , upload-time = "2025 -07-27T14:12:46.527 Z" } ,
{ url = "https://files.pythonhosted.org/packages/56/77/9c68e92500e6a1c83d024a70eadcc9a173f21aadd73c4675fe64c9c43fd f/coverage-7.10.1 -cp314 -cp314-musllinux_1_2_x86_64.whl" , hash = "sha256:ae8e59e5f4fd85d6ad34c2bb9d74037b5b11be072b8b7e9986beb11f957573d4 ", size = 246954 , upload-time = "2025 -07-27T14:12:49.279 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7f/a5/ba96671c5a669672aacd9877a5987c8551501b602827b4e84256da2a30a7 /coverage-7.10.1 -cp314 -cp314-win32 .whl" , hash = "sha256:042125c89cf74a074984002e165d61fe0e31c7bd40ebb4bbebf07939b5924613 " , size = 217616 , upload-time = "2025 -07-27T14:12:51.214 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e7/3c/e1e1eb95fc1585f15a410208c4795db24a948e04d9bde818fe4eb893bc85 /coverage-7.10.1 -cp314 -cp314-win_amd64 .whl" , hash = "sha256:a22c3bfe09f7a530e2c94c87ff7af867259c91bef87ed2089cd69b783af7b84e " , size = 218412 , upload-time = "2025 -07-27T14:12:53.429 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b 0/85/7e1e5be2cb966cba95566ba702b13a572ca744fbb3779df9888213762d67 /coverage-7.10.1 -cp314 -cp314-win_arm64 .whl" , hash = "sha256:ee6be07af68d9c4fca4027c70cea0c31a0f1bc9cb464ff3c84a1f916bf82e652 " , size = 216776 , upload-time = "2025 -07-27T14:12:55.482 Z" } ,
{ url = "https://files.pythonhosted.org/packages/62/0f/5bb8f29923141cca8560fe2217679caf4e0db643872c1945ac7d8748c2a7 /coverage-7.10.1 -cp314 -cp314 t-macosx_10_13_x86_ 64.whl" , hash = "sha256:d24fb3c0c8ff0d517c5ca5de7cf3994a4cd559cde0315201511dbfa7ab528894 " , size = 215698 , upload-time = "2025 -07-27T14:12:57.225 Z" } ,
{ url = "https://files.pythonhosted.org/packages/80/29/547038ffa4e8e4d9e82f7dfc6d152f75fcdc0af146913f0ba03875211f03 /coverage-7.10.1 -cp314 -cp314 t-macosx_11_0_arm 64.whl" , hash = "sha256:1217a54cfd79be20512a67ca81c7da3f2163f51bbfd188aab91054df012154f5 " , size = 215902 , upload-time = "2025 -07-27T14:12:59.071 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e1/8a/7aaa8fbfaed900147987a424e112af2e7790e1ac9cd92601e5bd4e1ba60a /coverage-7.10.1 -cp314 -cp314 t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:51f30da7a52c009667e02f125737229d7d8044ad84b79db454308033a7808ab2 ", size = 257230 , upload-time = "2025 -07-27T14:13:01.248 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e5/1d/c252b5ffac44294e23a0d79dd5acf51749b39795ccc898faeabf7bee903f /coverage-7.10.1 -cp314 -cp314 t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:ed3718c757c82d920f1c94089066225ca2ad7f00bb904cb72b1c39ebdd906ccb ", size = 259194 , upload-time = "2025 -07-27T14:13:03.247 Z" } ,
{ url = "https://files.pythonhosted.org/packages/16/ad/6c8d9f83d08f3bac2e7507534d0c48d1a4f52c18e6f94919d364edbdfa8f /coverage-7.10.1 -cp314 -cp314 t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:cc452481e124a819ced0c25412ea2e144269ef2f2534b862d9f6a9dae4bda17b ", size = 261316 , upload-time = "2025 -07-27T14:13 :04 .957 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d6/4e/f9bbf3a36c061e2e0e0f78369c006d66416561a33d2bee63345aee8ee65e /coverage-7.10.1 -cp314-cp314t -musllinux_1_2_aarch 64.whl" , hash = "sha256:9d6f494c307e5cb9b1e052ec1a471060f1dea092c8116e642e7a23e79d9388ea " , size = 258794 , upload-time = "2025 -07-27T14:13:06.715 Z" } ,
{ url = "https://files.pythonhosted.org/packages/87/82/e600bbe78eb2cb0541751d03cef9314bcd0897e8eea156219c39b685f869 /coverage-7.10.1 -cp314-cp314t -musllinux_1_2_i686 .whl" , hash = "sha256:fc0e46d86905ddd16b85991f1f4919028092b4e511689bbdaff0876bd8aab3dd " , size = 256869 , upload-time = "2025 -07-27T14:13:08.933 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ce/5d/2fc9a9236c5268f68ac011d97cd3a5ad16cc420535369bedbda659fdd9b7 /coverage-7.10.1 -cp314-cp314t -musl linux_1 _2_x86_64.whl" , hash = "sha256:80b9ccd82e30038b61fc9a692a8dc4801504689651b281ed9109f10cc9fe8b4d ", size = 257765 , upload-time = "2025 -07-27T14:13:10.778 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8a/05/b4e00b2bd48a2dc8e1c7d2aea7455f40af2e36484ab2ef06deb85883e9fe /coverage-7.10.1 -cp314-cp314t-win32.whl" , hash = "sha256:e58991a2b213417285ec866d3cd32db17a6a88061a985dbb7e8e8f13af429c47 ", size = 218420 , upload-time = "2025 -07-27T14:13:12.882 Z" } ,
{ url = "https://files.pythonhosted.org/packages/77/fb/d21d05f33ea27ece327422240e69654b5932b0b29e7fbc40fbab3cf199bf /coverage-7.10.1 -cp314-cp314t-win_amd64.whl" , hash = "sha256:e88dd71e4ecbc49d9d57d064117462c43f40a21a1383507811cf834a4a620651 ", size = 219536 , upload-time = "2025 -07-27T14:13:14.718 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a6/68/7fea94b141281ed8be3d1d5c4319a97f2befc3e487ce33657fc64db2c45e /coverage-7.10.1 -cp314-cp314t-win_arm64.whl" , hash = "sha256:1aadfb06a30c62c2eb82322171fe1f7c288c80ca4156d46af0ca039052814bab ", size = 217190 , upload-time = "2025 -07-27T14:13 :16 .85 Z" } ,
{ url = "https://files.pythonhosted.org/packages/0f/64/922899cff2c0fd3496be83fa8b81230f5a8d82a2ad30f98370b133c2c83b/coverage-7.10.1-py3-none-any.whl" , hash = "sha256:fa2a258aa6bf188eb9a8948f7102a83da7c430a0dce918dbd8b60ef8fcb772d7 ", size = 206597 , upload-time = "2025 -07-27T14:13:37.221 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf717 2b8 d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960 /coverage-7.13.4 -cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053 " , size = 219278 , upload-time = "2026 -02-09T12:56:31.673 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d /coverage-7.13.4 -cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b1 1" , size = 219783 , upload-time = "2026 -02-09T12:56:33.104 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85 /coverage-7.13.4 -cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa " , size = 250200 , upload-time = "2026 -02-09T12:56:34.474 Z" } ,
{ url = "https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236 /coverage-7.13.4 -cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd 7" , size = 252114 , upload-time = "2026 -02-09T12:56:35.749 Z" } ,
{ url = "https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017 /coverage-7.13.4 -cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f0 0" , size = 254220 , upload-time = "2026 -02-09T12:56:37.796 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7 /coverage-7.13.4 -cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef ", size = 256164 , upload-time = "2026 -02-09T12:56:39.01 6Z" } ,
{ url = "https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0 /coverage-7.13.4 -cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef97205290 3", size = 250325 , upload-time = "2026 -02-09T12:56:40.668 Z" } ,
{ url = "https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368 /coverage-7.13.4 -cp311-cp311-musllinux_1_2_aarch 64.whl" , hash = "sha256:d65b2d37303241 1e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f " , size = 251913 , upload-time = "2026 -02-09T12:56:41.97 Z" } ,
{ url = "https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74 /coverage-7.13.4 -cp311-cp311-musllinux_1_2_i686 .whl" , hash = "sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299 " , size = 249974 , upload-time = "2026 -02-09T12:56:43.323 Z" } ,
{ url = "https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600 /coverage-7.13.4 -cp311-cp311-musllinux_1_2_ppc64le .whl" , hash = "sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505 " , size = 253741 , upload-time = "2026 -02-09T12:56:45.155 Z" } ,
{ url = "https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446c abdc /coverage-7.13.4 -cp311-cp311-musllinux_1_2_riscv 64.whl" , hash = "sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6 " , size = 249695 , upload-time = "2026 -02-09T12:56:46.636 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b 5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70 /coverage-7.13.4 -cp311 -cp311 -musllinux_1_2 _x86_64.whl" , hash = "sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9 " , size = 250599 , upload-time = "2026 -02-09T12:56:48.13 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b 8/3 4/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476 /coverage-7.13.4 -cp311 -cp311-win32 .whl" , hash = "sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9 " , size = 221780 , upload-time = "2026 -02-09T12:56:50.479 Z" } ,
{ url = "https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl" , hash = "sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c9 8f", size = 222715 , upload-time = "2026 -02-09T12:56:51.815 Z" } ,
{ url = "https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4 /coverage-7.13.4 -cp311 -cp311-win_arm64.whl" , hash = "sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d 681 045f ", size = 221385 , upload-time = "2026 -02-09T12:56:53.194 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566 /coverage-7.13.4 -cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459 ", size = 219449 , upload-time = "2026 -02-09T12:56:54.889 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5 d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0 /coverage-7.13.4 -cp312-cp312-macosx_11_0_arm 64.whl" , hash = "sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3 " , size = 219810 , upload-time = "2026 -02-09T12:56:56.33 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7 8/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1 /coverage-7.13.4 -cp312-cp312-manylinux1_i686.many linux_2 _28_i686.manylinux_2_5 _i686.whl" , hash = "sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634 " , size = 251308 , upload-time = "2026 -02-09T12:56:57.858 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600 /coverage-7.13.4 -cp312-cp312-manylinux1_x86_64.many linux_2 _28_x86_64.manylinux_2_5 _x86_64.whl" , hash = "sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3 " , size = 254052 , upload-time = "2026 -02-09T12:56:59.754 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973 /coverage-7.13.4 -cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ff a", size = 255165 , upload-time = "2026 -02-09T12:57:01.287 Z" } ,
{ url = "https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f /coverage-7.13.4 -cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d 3", size = 257432 , upload-time = "2026 -02-09T12:57:02.637 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b /coverage-7.13.4 -cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a ", size = 251716 , upload-time = "2026 -02-09T12:57:04.056 Z" } ,
{ url = "https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4 /coverage-7.13.4 -cp312 -cp312 -musllinux_1_2_aarch 64.whl" , hash = "sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7 " , size = 253089 , upload-time = "2026 -02-09T12:57:05.503 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc9 9/coverage-7.13.4 -cp312 -cp312 -musllinu x_1_2_i686 .whl" , hash = "sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc " , size = 251232 , upload-time = "2026 -02-09T12:57:06 .87 9Z" } ,
{ url = "https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32 /coverage-7.13.4 -cp312 -cp312 -musl linux_1 _2_ppc64le.whl" , hash = "sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47 ", size = 255299 , upload-time = "2026 -02-09T12:57:08.245 Z" } ,
{ url = "https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da /coverage-7.13.4 -cp312 -cp312 -musl linux_1 _2_riscv64.whl" , hash = "sha256:ee756f00726693e5ba94d6df2bdfd64d48 52d 23b09bb0bc700e3b30e6f333985 ", size = 250796 , upload-time = "2026 -02-09T12:57:10.142 Z" } ,
{ url = "https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6 b/coverage-7.13.4 -cp312 -cp312 -musllinux_1_2_x86_64.whl" , hash = "sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0 ", size = 252673 , upload-time = "2026 -02-09T12:57:12.197 Z" } ,
{ url = "https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7 /coverage-7.13.4 -cp312 -cp312-win32 .whl" , hash = "sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246 " , size = 221990 , upload-time = "2026 -02-09T12:57:14.085 Z" } ,
{ url = "https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9 /coverage-7.13.4 -cp312 -cp312-win_amd64 .whl" , hash = "sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126 " , size = 222800 , upload-time = "2026 -02-09T12:57:15.944 Z" } ,
{ url = "https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37 /coverage-7.13.4 -cp312 -cp312-win_arm 64.whl" , hash = "sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d " , size = 221415 , upload-time = "2026 -02-09T12:57:17.497 Z" } ,
{ url = "https://files.pythonhosted.org/packages/db /23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503 /coverage-7.13.4 -cp313-cp313-macosx_10_13_x86_64 .whl" , hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9 " , size = 219474 , upload-time = "2026 -02-09T12:57:19.332 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae /coverage-7.13.4 -cp313-cp313-macosx_11_0_arm 64.whl" , hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac " , size = 219844 , upload-time = "2026 -02-09T12:57:20.66 Z" } ,
{ url = "https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2 /coverage-7.13.4 -cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea ", size = 250832 , upload-time = "2026 -02-09T12:57:22.0 07Z" } ,
{ url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7 /coverage-7.13.4 -cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b ", size = 253434 , upload-time = "2026 -02-09T12:57:23.339 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2 /coverage-7.13.4 -cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525 ", size = 254676 , upload-time = "2026 -02-09T12:57:24.774 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff /coverage-7.13.4 -cp313-cp313-manylinux2014_ppc64le .manylinux_2_17_ppc64le .manylinux_2_28_ppc64le .whl" , hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242 " , size = 256807 , upload-time = "2026 -02-09T12:57:26.125 Z" } ,
{ url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877 /coverage-7.13.4 -cp313-cp313-manylinux_2_31_riscv 64.manylinux_2_39_riscv 64.whl" , hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148 " , size = 251058 , upload-time = "2026 -02-09T12:57:27.614 Z" } ,
{ url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f 7/coverage-7.13.4 -cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a ", size = 252805 , upload-time = "2026 -02-09T12:57:29.06 6Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255 /coverage-7.13.4 -cp313-cp313-musllinux_1_2_i686 .whl" , hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e2 3" , size = 250766 , upload-time = "2026 -02-09T12:57:30.522 Z" } ,
{ url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044 /coverage-7.13.4 -cp313-cp313-musllinux_1_2_ppc64le .whl" , hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80 " , size = 254923 , upload-time = "2026 -02-09T12:57:31.946 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174 /coverage-7.13.4 -cp313-cp313-musllinux_1_2_riscv 64.whl" , hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea " , size = 250591 , upload-time = "2026 -02-09T12:57:33.842 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7 /coverage-7.13.4 -cp313-cp313-musllinux_1_2_x86_64 .whl" , hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a " , size = 252364 , upload-time = "2026 -02-09T12:57:35.743 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c8 0/coverage-7.13.4 -cp313-cp313-win32 .whl" , hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d " , size = 222010 , upload-time = "2026 -02-09T12:57:37.25 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc /coverage-7.13.4 -cp313-cp313-win_amd 64.whl" , hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd " , size = 222818 , upload-time = "2026 -02-09T12:57:38.734 Z" } ,
{ url = "https://files.pythonhosted.org/packages/0 4/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cd c7/coverage-7.13.4 -cp313 -cp313-win_arm 64.whl" , hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af " , size = 221438 , upload-time = "2026 -02-09T12:57:40.223 Z" } ,
{ url = "https://files.pythonhosted.org/packages/5 2/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7 /coverage-7.13.4 -cp313 -cp313t -macosx_10_13_x86_ 64.whl" , hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d " , size = 220165 , upload-time = "2026 -02-09T12:57:41.63 9Z" } ,
{ url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a /coverage-7.13.4 -cp313 -cp313t -macosx_11_0_arm64.whl" , hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12 ", size = 220516 , upload-time = "2026 -02-09T12:57:44.215 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c 7/coverage-7.13.4 -cp313 -cp313t -manylinux1_i686 .manylinux_2_28_i686 .manylinux_2_5_i686 .whl" , hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b " , size = 261804 , upload-time = "2026 -02-09T12:57:45.989 Z" } ,
{ url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f 273 18a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_ 64.manylinux_2_28_x86_ 64.manylinux_2_5_x86_ 64.whl" , hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9 " , size = 263885 , upload-time = "2026 -02-09T12:57:47.42 Z" } ,
{ url = "https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6 /coverage-7.13.4 -cp313 -cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092 ", size = 266308 , upload-time = "2026 -02-09T12:57:49.345 Z" } ,
{ url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83 /coverage-7.13.4 -cp313 -cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le .whl" , hash = "sha256:7 5ea b1ebe4 f2f 64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9 " , size = 267452 , upload-time = "2026 -02-09T12:57:50.811 Z" } ,
{ url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6b f/coverage-7.13.4 -cp313 -cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26 ", size = 261057 , upload-time = "2026 -02-09T12:57:52.447 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce /coverage-7.13.4 -cp313 -cp313t-musllinux_1_2_aarch64 .whl" , hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2 " , size = 263875 , upload-time = "2026 -02-09T12:57:53.938 Z" } ,
{ url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6 /coverage-7.13.4 -cp313 -cp313t-musllinux_1_2_i686 .whl" , hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940 " , size = 261500 , upload-time = "2026 -02-09T12:57:56.012 Z" } ,
{ url = "https://files.pythonhosted.org/packages/7 0/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f /coverage-7.13.4 -cp313 -cp313t-musllinux_1_2_ppc64le .whl" , hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c " , size = 265212 , upload-time = "2026 -02-09T12:57:57.5 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f /coverage-7.13.4 -cp313 -cp313 t-musllinux_1_2_riscv 64.whl" , hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0 " , size = 260398 , upload-time = "2026 -02-09T12:57:59.027 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c /coverage-7.13.4 -cp313 -cp313 t-musllinux_1_2_x86_ 64.whl" , hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b " , size = 262584 , upload-time = "2026 -02-09T12:58:01.129 Z" } ,
{ url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f /coverage-7.13.4 -cp313 -cp313 t-win32.whl" , hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9 ", size = 222688 , upload-time = "2026 -02-09T12:58:02.736 Z" } ,
{ url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d /coverage-7.13.4 -cp313 -cp313 t-win_amd64.whl" , hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd ", size = 223746 , upload-time = "2026 -02-09T12:58:05.362 Z" } ,
{ url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e /coverage-7.13.4 -cp313 -cp313 t-win_arm64.whl" , hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997 ", size = 222003 , upload-time = "2026 -02-09T12:58 :06 .952 Z" } ,
{ url = "https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590 /coverage-7.13.4 -cp314-cp314-macosx_10_15_x86_ 64.whl" , hash = "sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601 " , size = 219522 , upload-time = "2026 -02-09T12:58:08.623 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60 /coverage-7.13.4 -cp314-cp314-macosx_11_0_arm64 .whl" , hash = "sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689 " , size = 219855 , upload-time = "2026 -02-09T12:58:10.176 Z" } ,
{ url = "https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70 /coverage-7.13.4 -cp314-cp314-manylinux1_i686.many linux_2 _28_i686.manylinux_2_5_i686.whl" , hash = "sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c ", size = 250887 , upload-time = "2026 -02-09T12:58:12.503 Z" } ,
{ url = "https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab /coverage-7.13.4 -cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129 ", size = 253396 , upload-time = "2026 -02-09T12:58:14.615 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537 /coverage-7.13.4 -cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552 ", size = 254745 , upload-time = "2026 -02-09T12:58:16.162 Z" } ,
{ url = "https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff /coverage-7.13.4 -cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a ", size = 257055 , upload-time = "2026 -02-09T12:58 :17 .892 Z" } ,
{ url = "https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356 ", size = 250911 , upload-time = "2026 -02-09T12:58:19.495 Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl" , hash = "sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71" , size = 252754 , upload-time = "2026-02-09T12:58:21.064Z" } ,
{ url = "https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl" , hash = "sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5" , size = 250720 , upload-time = "2026-02-09T12:58:22.622Z" } ,
{ url = "https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl" , hash = "sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98" , size = 254994 , upload-time = "2026-02-09T12:58:24.548Z" } ,
{ url = "https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl" , hash = "sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5" , size = 250531 , upload-time = "2026-02-09T12:58:26.271Z" } ,
{ url = "https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl" , hash = "sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0" , size = 252189 , upload-time = "2026-02-09T12:58:27.807Z" } ,
{ url = "https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl" , hash = "sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb" , size = 222258 , upload-time = "2026-02-09T12:58:29.441Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl" , hash = "sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505" , size = 223073 , upload-time = "2026-02-09T12:58:31.026Z" } ,
{ url = "https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl" , hash = "sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2" , size = 221638 , upload-time = "2026-02-09T12:58:32.599Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl" , hash = "sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056" , size = 220246 , upload-time = "2026-02-09T12:58:34.181Z" } ,
{ url = "https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl" , hash = "sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc" , size = 220514 , upload-time = "2026-02-09T12:58:35.704Z" } ,
{ url = "https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl" , hash = "sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9" , size = 261877 , upload-time = "2026-02-09T12:58:37.864Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl" , hash = "sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf" , size = 264004 , upload-time = "2026-02-09T12:58:39.492Z" } ,
{ url = "https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55" , size = 266408 , upload-time = "2026-02-09T12:58:41.852Z" } ,
{ url = "https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl" , hash = "sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72" , size = 267544 , upload-time = "2026-02-09T12:58:44.093Z" } ,
{ url = "https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl" , hash = "sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a" , size = 260980 , upload-time = "2026-02-09T12:58:45.721Z" } ,
{ url = "https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl" , hash = "sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6" , size = 263871 , upload-time = "2026-02-09T12:58:47.334Z" } ,
{ url = "https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl" , hash = "sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3" , size = 261472 , upload-time = "2026-02-09T12:58:48.995Z" } ,
{ url = "https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl" , hash = "sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750" , size = 265210 , upload-time = "2026-02-09T12:58:51.178Z" } ,
{ url = "https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl" , hash = "sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39" , size = 260319 , upload-time = "2026-02-09T12:58:53.081Z" } ,
{ url = "https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl" , hash = "sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0" , size = 262638 , upload-time = "2026-02-09T12:58:55.258Z" } ,
{ url = "https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl" , hash = "sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea" , size = 223040 , upload-time = "2026-02-09T12:58:56.936Z" } ,
{ url = "https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl" , hash = "sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932" , size = 224148 , upload-time = "2026-02-09T12:58:58.645Z" } ,
{ url = "https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl" , hash = "sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b" , size = 222172 , upload-time = "2026-02-09T12:59:00.396Z" } ,
{ url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl" , hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0" , size = 211242 , upload-time = "2026-02-09T12:59:02.032Z" } ,
]
[ [ package ] ]
name = "dill"
version = "0.4.0 "
version = "0.4.1 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042 /dill-0.4.0 .tar.gz" , hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0 " , size = 186976 , upload-time = "2025 -04 -16 T00:41:48.867 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5 /dill-0.4.1 .tar.gz" , hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa " , size = 187315 , upload-time = "2026 -01 -19 T02:36:56.85 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869 /dill-0.4.0 -py3-none-any.whl" , hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049 " , size = 119668 , upload-time = "2025 -04 -16 T00:41:47.671 Z" } ,
]
[ [ package ] ]
name = "exceptiongroup"
version = "1.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" , marker = "python_full_version < '3.13'" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz" , hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88" , size = 29749 , upload-time = "2025-05-10T17:42:51.123Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl" , hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10" , size = 16674 , upload-time = "2025-05-10T17:42:49.33Z" } ,
{ url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933 /dill-0.4.1 -py3-none-any.whl" , hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d " , size = 120019 , upload-time = "2026 -01 -19 T02:36:55.663 Z" } ,
]
[ [ package ] ]
name = "idna"
version = "3.10 "
version = "3.11 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d /idna-3.10 .tar.gz" , hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 " , size = 190490 , upload-time = "2024-09 -15 T18:07:39.745 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60 /idna-3.11 .tar.gz" , hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902 " , size = 194582 , upload-time = "2025-10 -12 T14:55:20.501 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3 /idna-3.10 -py3-none-any.whl" , hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 " , size = 70442 , upload-time = "2024-09 -15 T18:07:37.964 Z" } ,
{ url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b /idna-3.11 -py3-none-any.whl" , hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea " , size = 71008 , upload-time = "2025-10 -12 T14:55:18.883 Z" } ,
]
[ [ package ] ]
name = "iniconfig"
version = "2.1 .0"
version = "2.3 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/f 2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3 /iniconfig-2.1 .0.tar.gz" , hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7 " , size = 4793 , upload-time = "2025-03 -19 T20:09:59.7 21Z" }
sdist = { url = "https://files.pythonhosted.org/packages/7 2/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10 /iniconfig-2.3 .0.tar.gz" , hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 " , size = 20503 , upload-time = "2025-1 0-18 T21:55:43. 219 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b /iniconfig-2.1 .0-py3-none-any.whl" , hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760 " , size = 6050 , upload-time = "2025-03 -19 T20:10:01.071 Z" } ,
{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8 /iniconfig-2.3 .0-py3-none-any.whl" , hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12 " , size = 7484 , upload-time = "2025-1 0-18 T21:55:41.639 Z" } ,
]
[ [ package ] ]
@@ -249,31 +286,8 @@ name = "ipilot"
version = "0.0.0"
source = { editable = "." }
dependencies = [
{ name = "astroid" } ,
{ name = "attrs" } ,
{ name = "certifi" } ,
{ name = "charset-normalizer" } ,
{ name = "click" } ,
{ name = "dill" } ,
{ name = "exceptiongroup" } ,
{ name = "idna" } ,
{ name = "iniconfig" } ,
{ name = "lazy-object-proxy" } ,
{ name = "mccabe" } ,
{ name = "mypy-extensions" } ,
{ name = "packaging" } ,
{ name = "pathspec" } ,
{ name = "platformdirs" } ,
{ name = "pluggy" } ,
{ name = "py" } ,
{ name = "pyparsing" } ,
{ name = "requests" } ,
{ name = "six" } ,
{ name = "tabulate" } ,
{ name = "tomli" } ,
{ name = "tomlkit" } ,
{ name = "urllib3" } ,
{ name = "wrapt" } ,
]
[ package . dev-dependencies ]
@@ -288,67 +302,27 @@ dev = [
[ package . metadata ]
requires-dist = [
{ name = "astroid " , specifier = "==3 .3.11 " } ,
{ name = "attrs " , specifier = "==25.3 .0" } ,
{ name = "certifi" , specifier = "==2025.7.14" } ,
{ name = "charset-normalizer" , specifier = "==3.4.2" } ,
{ name = "click" , specifier = "==8.2.2" } ,
{ name = "dill" , specifier = "==0.4.0" } ,
{ name = "exceptiongroup" , specifier = "==1.3.0" } ,
{ name = "idna" , specifier = "==3.10" } ,
{ name = "iniconfig" , specifier = "==2.1.0" } ,
{ name = "lazy-object-proxy" , specifier = "==1.11.0" } ,
{ name = "mccabe" , specifier = "==0.7.0" } ,
{ name = "mypy-extensions" , specifier = "==1.1.0" } ,
{ name = "packaging" , specifier = "==25.0" } ,
{ name = "pathspec" , specifier = "==0.12.1" } ,
{ name = "platformdirs" , specifier = "==4.3.8" } ,
{ name = "pluggy" , specifier = "==1.6.0" } ,
{ name = "py" , specifier = "==1.11.0" } ,
{ name = "pyparsing" , specifier = "==3.2.3" } ,
{ name = "requests" , specifier = "==2.32.4" } ,
{ name = "six" , specifier = "==1.17.0" } ,
{ name = "tabulate" , specifier = "==0.9.0" } ,
{ name = "tomli" , specifier = "==2.2.1" } ,
{ name = "tomlkit" , specifier = "==0.13.3" } ,
{ name = "urllib3" , specifier = "==2.5.0" } ,
{ name = "wrapt" , specifier = "==1.17.2" } ,
{ name = "requests " , specifier = "==2 .32.5 " } ,
{ name = "tabulate " , specifier = "==0.10 .0" } ,
]
[ package . metadata . requires-dev ]
dev = [
{ name = "black" , specifier = ">=25.1 .0,<25.2.0 " } ,
{ name = "black" , specifier = ">=26.3 .0,<26.3.1 " } ,
{ name = "coverage" , specifier = ">=7.5.0,<8.0.0" } ,
{ name = "pylint" , specifier = ">=3.1.0 ,<4.0 .0" } ,
{ name = "pylint" , specifier = ">=4.0.4 ,<4.1 .0" } ,
{ name = "pylint-exit" , specifier = ">=1.2.0,<2.0.0" } ,
{ name = "pytest" , specifier = ">=8.1.1 ,<9.0 .0" } ,
{ name = "pytest" , specifier = ">=9.0.0 ,<9.1 .0" } ,
{ name = "requests-mock" , specifier = ">=1.12.1,<2.0.0" } ,
]
[ [ package ] ]
name = "isort"
version = "6 .0.1"
version = "8 .0.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0 /isort-6 .0.1.tar.gz" , hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450 " , size = 821955 , upload-time = "2025 -02-26T21:13:16.95 5Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ef/7c/ec4ab396d31b3b395e2e999c8f46dec78c5e29209fac49d1f4dace04041d /isort-8 .0.1.tar.gz" , hash = "sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d " , size = 769592 , upload-time = "2026 -02-28T10:08:20.68 5Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c /isort-6 .0.1-py3-none-any.whl" , hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e961 5" , size = 94186 , upload-time = "2025 -02-26T21:13:14.911 Z" } ,
]
[ [ package ] ]
name = "lazy-object-proxy"
version = "1.11.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/57/f9/1f56571ed82fb324f293661690635cf42c41deb8a70a6c9e6edc3e9bb3c8/lazy_object_proxy-1.11.0.tar.gz" , hash = "sha256:18874411864c9fbbbaa47f9fc1dd7aea754c86cfde21278ef427639d1dd78e9c" , size = 44736 , upload-time = "2025-04-16T16:53:48.482Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/51/f6/eb645ca1ff7408bb69e9b1fe692cce1d74394efdbb40d6207096c0cd8381/lazy_object_proxy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:090935756cc041e191f22f4f9c7fd4fe9a454717067adf5b1bbd2ce3046b556e" , size = 28047 , upload-time = "2025-04-16T16:53:34.679Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/9c/aabbe1e8b99b8b0edb846b49a517edd636355ac97364419d9ba05b8fa19f/lazy_object_proxy-1.11.0-cp311-cp311-win_amd64.whl" , hash = "sha256:76ec715017f06410f57df442c1a8d66e6b5f7035077785b129817f5ae58810a4" , size = 28440 , upload-time = "2025-04-16T16:53:36.113Z" } ,
{ url = "https://files.pythonhosted.org/packages/4d/24/dae4759469e9cd318fef145f7cfac7318261b47b23a4701aa477b0c3b42c/lazy_object_proxy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:9a9f39098e93a63618a79eef2889ae3cf0605f676cd4797fdfd49fcd7ddc318b" , size = 28142 , upload-time = "2025-04-16T16:53:37.663Z" } ,
{ url = "https://files.pythonhosted.org/packages/de/0c/645a881f5f27952a02f24584d96f9f326748be06ded2cee25f8f8d1cd196/lazy_object_proxy-1.11.0-cp312-cp312-win_amd64.whl" , hash = "sha256:ee13f67f4fcd044ef27bfccb1c93d39c100046fec1fad6e9a1fcdfd17492aeb3" , size = 28380 , upload-time = "2025-04-16T16:53:39.07Z" } ,
{ url = "https://files.pythonhosted.org/packages/a8/0f/6e004f928f7ff5abae2b8e1f68835a3870252f886e006267702e1efc5c7b/lazy_object_proxy-1.11.0-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:fd4c84eafd8dd15ea16f7d580758bc5c2ce1f752faec877bb2b1f9f827c329cd" , size = 28149 , upload-time = "2025-04-16T16:53:40.135Z" } ,
{ url = "https://files.pythonhosted.org/packages/63/cb/b8363110e32cc1fd82dc91296315f775d37a39df1c1cfa976ec1803dac89/lazy_object_proxy-1.11.0-cp313-cp313-win_amd64.whl" , hash = "sha256:d2503427bda552d3aefcac92f81d9e7ca631e680a2268cbe62cd6a58de6409b7" , size = 28389 , upload-time = "2025-04-16T16:53:43.612Z" } ,
{ url = "https://files.pythonhosted.org/packages/7b/89/68c50fcfd81e11480cd8ee7f654c9bd790a9053b9a0efe9983d46106f6a9/lazy_object_proxy-1.11.0-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:0613116156801ab3fccb9e2b05ed83b08ea08c2517fdc6c6bc0d4697a1a376e3" , size = 28777 , upload-time = "2025-04-16T16:53:41.371Z" } ,
{ url = "https://files.pythonhosted.org/packages/39/d0/7e967689e24de8ea6368ec33295f9abc94b9f3f0cd4571bfe148dc432190/lazy_object_proxy-1.11.0-cp313-cp313t-win_amd64.whl" , hash = "sha256:bb03c507d96b65f617a6337dedd604399d35face2cdf01526b913fb50c4cb6e8" , size = 29598 , upload-time = "2025-04-16T16:53:42.513Z" } ,
{ url = "https://files.pythonhosted.org/packages/e7/1e/fb441c07b6662ec1fc92b249225ba6e6e5221b05623cb0131d082f782edc/lazy_object_proxy-1.11.0-py3-none-any.whl" , hash = "sha256:a56a5093d433341ff7da0e89f9b486031ccd222ec8e52ec84d0ec1cdc819674b" , size = 16635 , upload-time = "2025-04-16T16:53:47.198Z" } ,
{ url = "https://files.pythonhosted.org/packages/3e/95/c7c34aa53c16353c56d0b802fba48d5f5caa2cdee7958acbcb795c830416 /isort-8 .0.1-py3-none-any.whl" , hash = "sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d7 5" , size = 89733 , upload-time = "2026 -02-28T10:08:19.466 Z" } ,
]
[ [ package ] ]
@@ -371,29 +345,29 @@ wheels = [
[ [ package ] ]
name = "packaging"
version = "25 .0"
version = "26 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d /packaging-25 .0.tar.gz" , hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f " , size = 165727 , upload-time = "2025 -04-19T11:48:59.673 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4 /packaging-26 .0.tar.gz" , hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4 " , size = 143416 , upload-time = "2026 -01-21T20:50:39.064 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8 /packaging-25 .0-py3-none-any.whl" , hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 " , size = 66469 , upload-time = "2025 -04-19T11:48:57.875 Z" } ,
{ url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53 /packaging-26 .0-py3-none-any.whl" , hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529 " , size = 74366 , upload-time = "2026 -01-21T20:50:37.788 Z" } ,
]
[ [ package ] ]
name = "pathspec"
version = "0.12.1 "
version = "1.0.4 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/c a/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf /pathspec-0.12.1 .tar.gz" , hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 " , size = 51043 , upload-time = "2023-12-10T22:30:45 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/f a/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015 /pathspec-1.0.4 .tar.gz" , hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645 " , size = 131200 , upload-time = "2026-01-27T03:59:46.938 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6 /pathspec-0.12.1 -py3-none-any.whl" , hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 " , size = 31191 , upload-time = "2023-12-10T22:30 :43 .14 Z" } ,
{ url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7 /pathspec-1.0.4 -py3-none-any.whl" , hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723 " , size = 55206 , upload-time = "2026-01-27T03:59 :45 .137 Z" } ,
]
[ [ package ] ]
name = "platformdirs"
version = "4.3.8 "
version = "4.9.2 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf 2/platformdirs-4.3.8 .tar.gz" , hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc " , size = 21362 , upload-time = "2025 -05-07T22:47:42.121 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b47746085867 2/platformdirs-4.9.2 .tar.gz" , hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291 " , size = 28394 , upload-time = "2026 -02-16T03:56:10.574 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa /platformdirs-4.3.8 -py3-none-any.whl" , hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4 " , size = 18567 , upload-time = "2025 -05-07T22:47:40.376 Z" } ,
{ url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8 /platformdirs-4.9.2 -py3-none-any.whl" , hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd " , size = 21168 , upload-time = "2026 -02-16T03:56:08.891 Z" } ,
]
[ [ package ] ]
@@ -405,15 +379,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl" , hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746" , size = 20538 , upload-time = "2025-05-15T12:30:06.134Z" } ,
]
[ [ package ] ]
name = "py"
version = "1.11.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz" , hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719" , size = 207796 , upload-time = "2021-11-04T17:17:01.377Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl" , hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" , size = 98708 , upload-time = "2021-11-04T17:17:00.152Z" } ,
]
[ [ package ] ]
name = "pygments"
version = "2.19.2"
@@ -425,7 +390,7 @@ wheels = [
[ [ package ] ]
name = "pylint"
version = "3.3.7 "
version = "4.0.5 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "astroid" } ,
@@ -436,9 +401,9 @@ dependencies = [
{ name = "platformdirs" } ,
{ name = "tomlkit" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/1c/e4/83e487d3ddd64ab27749b66137b26dc0c5b5c161be680e6beffdc99070b3 /pylint-3.3.7 .tar.gz" , hash = "sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559 " , size = 1520709 , upload-time = "2025 -05-04T17:07:51.089 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/e4/b6/74d9a8a68b8067efce8d07707fe6a236324ee1e7808d2eb3646ec8517c7d /pylint-4.0.5 .tar.gz" , hash = "sha256:8cd6a618df75deb013bd7eb98327a95f02a6fb839205a6bbf5456ef96afb317c " , size = 1572474 , upload-time = "2026 -02-20T09:07:33.621 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e8/83/bff755d09e31b5d25cc7fdc4bf3915d1a404e181f1abf0359af376845c24 /pylint-3.3.7 -py3-none-any.whl" , hash = "sha256:43860aafefce92fca4cf6b61fe199cdc5ae54ea28f9bf4cd49de267b5195803d " , size = 522565 , upload-time = "2025 -05-04T17:07:48.714 Z" } ,
{ url = "https://files.pythonhosted.org/packages/d5/6f/9ac2548e290764781f9e7e2aaf0685b086379dabfb29ca38536985471eaf /pylint-4.0.5 -py3-none-any.whl" , hash = "sha256:00f51c9b14a3b3ae08cff6b2cdd43f28165c78b165b628692e428fb1f8dc2cf2 " , size = 536694 , upload-time = "2026 -02-20T09:07:31.028 Z" } ,
]
[ [ package ] ]
@@ -450,18 +415,9 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/94/ed/5d45bbd42d5407250dd46ce1b9c098d612c3a9bb538858d09da2df77c961/pylint_exit-1.2.0-py2.py3-none-any.whl" , hash = "sha256:65c9e7856e9058705a92d7c45628d604b2a4b8ee2b3c18a7303be77f9ed87cbe" , size = 6340 , upload-time = "2020-07-15T22:18:00.11Z" } ,
]
[ [ package ] ]
name = "pyparsing"
version = "3.2.3"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz" , hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be" , size = 1088608 , upload-time = "2025-03-25T05:01:28.114Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl" , hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf" , size = 111120 , upload-time = "2025-03-25T05:01:24.908Z" } ,
]
[ [ package ] ]
name = "pytest"
version = "8.4.1 "
version = "9.0.2 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama" , marker = "sys_platform == 'win32'" } ,
@@ -470,14 +426,48 @@ dependencies = [
{ name = "pluggy" } ,
{ name = "pygments" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb /pytest-8.4.1 .tar.gz" , hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c " , size = 1517714 , upload-time = "2025-06-18T05:48:06.109 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f /pytest-9.0.2 .tar.gz" , hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11 " , size = 1568901 , upload-time = "2025-12-06T21:30:51.014 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87 /pytest-8.4.1 -py3-none-any.whl" , hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7 " , size = 365474 , upload-time = "2025-06-18T05:48:03.955 Z" } ,
{ url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f /pytest-9.0.2 -py3-none-any.whl" , hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b " , size = 374801 , upload-time = "2025-12-06T21:30:49.154 Z" } ,
]
[ [ package ] ]
name = "pytokens"
version = "0.4.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/b6/34/b4e015b99031667a7b960f888889c5bd34ef585c85e1cb56a594b92836ac/pytokens-0.4.1.tar.gz" , hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a" , size = 23015 , upload-time = "2026-01-30T01:03:45.924Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3d/92/790ebe03f07b57e53b10884c329b9a1a308648fc083a6d4a39a10a28c8fc/pytokens-0.4.1-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:d70e77c55ae8380c91c0c18dea05951482e263982911fc7410b1ffd1dadd3440" , size = 160864 , upload-time = "2026-01-30T01:02:57.882Z" } ,
{ url = "https://files.pythonhosted.org/packages/13/25/a4f555281d975bfdd1eba731450e2fe3a95870274da73fb12c40aeae7625/pytokens-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:4a58d057208cb9075c144950d789511220b07636dd2e4708d5645d24de666bdc" , size = 248565 , upload-time = "2026-01-30T01:02:59.912Z" } ,
{ url = "https://files.pythonhosted.org/packages/17/50/bc0394b4ad5b1601be22fa43652173d47e4c9efbf0044c62e9a59b747c56/pytokens-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:b49750419d300e2b5a3813cf229d4e5a4c728dae470bcc89867a9ad6f25a722d" , size = 260824 , upload-time = "2026-01-30T01:03:01.471Z" } ,
{ url = "https://files.pythonhosted.org/packages/4e/54/3e04f9d92a4be4fc6c80016bc396b923d2a6933ae94b5f557c939c460ee0/pytokens-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:d9907d61f15bf7261d7e775bd5d7ee4d2930e04424bab1972591918497623a16" , size = 264075 , upload-time = "2026-01-30T01:03:04.143Z" } ,
{ url = "https://files.pythonhosted.org/packages/d1/1b/44b0326cb5470a4375f37988aea5d61b5cc52407143303015ebee94abfd6/pytokens-0.4.1-cp311-cp311-win_amd64.whl" , hash = "sha256:ee44d0f85b803321710f9239f335aafe16553b39106384cef8e6de40cb4ef2f6" , size = 103323 , upload-time = "2026-01-30T01:03:05.412Z" } ,
{ url = "https://files.pythonhosted.org/packages/41/5d/e44573011401fb82e9d51e97f1290ceb377800fb4eed650b96f4753b499c/pytokens-0.4.1-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:140709331e846b728475786df8aeb27d24f48cbcf7bcd449f8de75cae7a45083" , size = 160663 , upload-time = "2026-01-30T01:03:06.473Z" } ,
{ url = "https://files.pythonhosted.org/packages/f0/e6/5bbc3019f8e6f21d09c41f8b8654536117e5e211a85d89212d59cbdab381/pytokens-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:6d6c4268598f762bc8e91f5dbf2ab2f61f7b95bdc07953b602db879b3c8c18e1" , size = 255626 , upload-time = "2026-01-30T01:03:08.177Z" } ,
{ url = "https://files.pythonhosted.org/packages/bf/3c/2d5297d82286f6f3d92770289fd439956b201c0a4fc7e72efb9b2293758e/pytokens-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:24afde1f53d95348b5a0eb19488661147285ca4dd7ed752bbc3e1c6242a304d1" , size = 269779 , upload-time = "2026-01-30T01:03:09.756Z" } ,
{ url = "https://files.pythonhosted.org/packages/20/01/7436e9ad693cebda0551203e0bf28f7669976c60ad07d6402098208476de/pytokens-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:5ad948d085ed6c16413eb5fec6b3e02fa00dc29a2534f088d3302c47eb59adf9" , size = 268076 , upload-time = "2026-01-30T01:03:10.957Z" } ,
{ url = "https://files.pythonhosted.org/packages/2e/df/533c82a3c752ba13ae7ef238b7f8cdd272cf1475f03c63ac6cf3fcfb00b6/pytokens-0.4.1-cp312-cp312-win_amd64.whl" , hash = "sha256:3f901fe783e06e48e8cbdc82d631fca8f118333798193e026a50ce1b3757ea68" , size = 103552 , upload-time = "2026-01-30T01:03:12.066Z" } ,
{ url = "https://files.pythonhosted.org/packages/cb/dc/08b1a080372afda3cceb4f3c0a7ba2bde9d6a5241f1edb02a22a019ee147/pytokens-0.4.1-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:8bdb9d0ce90cbf99c525e75a2fa415144fd570a1ba987380190e8b786bc6ef9b" , size = 160720 , upload-time = "2026-01-30T01:03:13.843Z" } ,
{ url = "https://files.pythonhosted.org/packages/64/0c/41ea22205da480837a700e395507e6a24425151dfb7ead73343d6e2d7ffe/pytokens-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:5502408cab1cb18e128570f8d598981c68a50d0cbd7c61312a90507cd3a1276f" , size = 254204 , upload-time = "2026-01-30T01:03:14.886Z" } ,
{ url = "https://files.pythonhosted.org/packages/e0/d2/afe5c7f8607018beb99971489dbb846508f1b8f351fcefc225fcf4b2adc0/pytokens-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:29d1d8fb1030af4d231789959f21821ab6325e463f0503a61d204343c9b355d1" , size = 268423 , upload-time = "2026-01-30T01:03:15.936Z" } ,
{ url = "https://files.pythonhosted.org/packages/68/d4/00ffdbd370410c04e9591da9220a68dc1693ef7499173eb3e30d06e05ed1/pytokens-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:970b08dd6b86058b6dc07efe9e98414f5102974716232d10f32ff39701e841c4" , size = 266859 , upload-time = "2026-01-30T01:03:17.458Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/c9/c3161313b4ca0c601eeefabd3d3b576edaa9afdefd32da97210700e47652/pytokens-0.4.1-cp313-cp313-win_amd64.whl" , hash = "sha256:9bd7d7f544d362576be74f9d5901a22f317efc20046efe2034dced238cbbfe78" , size = 103520 , upload-time = "2026-01-30T01:03:18.652Z" } ,
{ url = "https://files.pythonhosted.org/packages/8f/a7/b470f672e6fc5fee0a01d9e75005a0e617e162381974213a945fcd274843/pytokens-0.4.1-cp314-cp314-macosx_11_0_arm64.whl" , hash = "sha256:4a14d5f5fc78ce85e426aa159489e2d5961acf0e47575e08f35584009178e321" , size = 160821 , upload-time = "2026-01-30T01:03:19.684Z" } ,
{ url = "https://files.pythonhosted.org/packages/80/98/e83a36fe8d170c911f864bfded690d2542bfcfacb9c649d11a9e6eb9dc41/pytokens-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:97f50fd18543be72da51dd505e2ed20d2228c74e0464e4262e4899797803d7fa" , size = 254263 , upload-time = "2026-01-30T01:03:20.834Z" } ,
{ url = "https://files.pythonhosted.org/packages/0f/95/70d7041273890f9f97a24234c00b746e8da86df462620194cef1d411ddeb/pytokens-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:dc74c035f9bfca0255c1af77ddd2d6ae8419012805453e4b0e7513e17904545d" , size = 268071 , upload-time = "2026-01-30T01:03:21.888Z" } ,
{ url = "https://files.pythonhosted.org/packages/da/79/76e6d09ae19c99404656d7db9c35dfd20f2086f3eb6ecb496b5b31163bad/pytokens-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl" , hash = "sha256:f66a6bbe741bd431f6d741e617e0f39ec7257ca1f89089593479347cc4d13324" , size = 271716 , upload-time = "2026-01-30T01:03:23.633Z" } ,
{ url = "https://files.pythonhosted.org/packages/79/37/482e55fa1602e0a7ff012661d8c946bafdc05e480ea5a32f4f7e336d4aa9/pytokens-0.4.1-cp314-cp314-win_amd64.whl" , hash = "sha256:b35d7e5ad269804f6697727702da3c517bb8a5228afa450ab0fa787732055fc9" , size = 104539 , upload-time = "2026-01-30T01:03:24.788Z" } ,
{ url = "https://files.pythonhosted.org/packages/30/e8/20e7db907c23f3d63b0be3b8a4fd1927f6da2395f5bcc7f72242bb963dfe/pytokens-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl" , hash = "sha256:8fcb9ba3709ff77e77f1c7022ff11d13553f3c30299a9fe246a166903e9091eb" , size = 168474 , upload-time = "2026-01-30T01:03:26.428Z" } ,
{ url = "https://files.pythonhosted.org/packages/d6/81/88a95ee9fafdd8f5f3452107748fd04c24930d500b9aba9738f3ade642cc/pytokens-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl" , hash = "sha256:79fc6b8699564e1f9b521582c35435f1bd32dd06822322ec44afdeba666d8cb3" , size = 290473 , upload-time = "2026-01-30T01:03:27.415Z" } ,
{ url = "https://files.pythonhosted.org/packages/cf/35/3aa899645e29b6375b4aed9f8d21df219e7c958c4c186b465e42ee0a06bf/pytokens-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" , hash = "sha256:d31b97b3de0f61571a124a00ffe9a81fb9939146c122c11060725bd5aea79975" , size = 303485 , upload-time = "2026-01-30T01:03:28.558Z" } ,
{ url = "https://files.pythonhosted.org/packages/52/a0/07907b6ff512674d9b201859f7d212298c44933633c946703a20c25e9d81/pytokens-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl" , hash = "sha256:967cf6e3fd4adf7de8fc73cd3043754ae79c36475c1c11d514fc72cf5490094a" , size = 306698 , upload-time = "2026-01-30T01:03:29.653Z" } ,
{ url = "https://files.pythonhosted.org/packages/39/2a/cbbf9250020a4a8dd53ba83a46c097b69e5eb49dd14e708f496f548c6612/pytokens-0.4.1-cp314-cp314t-win_amd64.whl" , hash = "sha256:584c80c24b078eec1e227079d56dc22ff755e0ba8654d8383b2c549107528918" , size = 116287 , upload-time = "2026-01-30T01:03:30.912Z" } ,
{ url = "https://files.pythonhosted.org/packages/c6/78/397db326746f0a342855b81216ae1f0a32965deccfd7c830a2dbc66d2483/pytokens-0.4.1-py3-none-any.whl" , hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de" , size = 13729 , upload-time = "2026-01-30T01:03:45.029Z" } ,
]
[ [ package ] ]
name = "requests"
version = "2.32.4 "
version = "2.32.5 "
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" } ,
@@ -485,9 +475,9 @@ dependencies = [
{ name = "idna" } ,
{ name = "urllib3" } ,
]
sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8 /requests-2.32.4 .tar.gz" , hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422 " , size = 135258 , upload-time = "2025-06-09T16 :43 :07.34 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4 /requests-2.32.5 .tar.gz" , hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf " , size = 134517 , upload-time = "2025-08-18T20 :46 :02.573 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b /requests-2.32.4 -py3-none-any.whl" , hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c " , size = 64847 , upload-time = "2025-06-09T16 :43 :05.728 Z" } ,
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3 /requests-2.32.5 -py3-none-any.whl" , hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6 " , size = 64738 , upload-time = "2025-08-18T20 :46 :00.542 Z" } ,
]
[ [ package ] ]
@@ -502,139 +492,29 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/97/ec/889fbc557727da0c34a33850950310240f2040f3b1955175fdb2b36a8910/requests_mock-1.12.1-py2.py3-none-any.whl" , hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563" , size = 27695 , upload-time = "2024-03-29T03:54:27.64Z" } ,
]
[ [ package ] ]
name = "six"
version = "1.17.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz" , hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" , size = 34031 , upload-time = "2024-12-04T17:35:28.174Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl" , hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274" , size = 11050 , upload-time = "2024-12-04T17:35:26.475Z" } ,
]
[ [ package ] ]
name = "tabulate"
version = "0.9 .0"
version = "0.10 .0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e379 7b8 f7902564ab6ea0d60ff8ca23952079064155d1ae1 /tabulate-0.9 .0.tar.gz" , hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c " , size = 81090 , upload-time = "2022-10 -06 T17:21:48.54 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/46/58/8c37dea 7bb f769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6 /tabulate-0.10 .0.tar.gz" , hash = "sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d " , size = 91754 , upload-time = "2026-03 -04 T18:55:34.402 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854 /tabulate-0.9 .0-py3-none-any.whl" , hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f " , size = 35252 , upload-time = "2022-10 -06 T17:21:44.262 Z" } ,
]
[ [ package ] ]
name = "tomli"
version = "2.2.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz" , hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff" , size = 17175 , upload-time = "2024-11-27T22:38:36.873Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249" , size = 131077 , upload-time = "2024-11-27T22:37:54.956Z" } ,
{ url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6" , size = 123429 , upload-time = "2024-11-27T22:37:56.698Z" } ,
{ url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a" , size = 226067 , upload-time = "2024-11-27T22:37:57.63Z" } ,
{ url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee" , size = 236030 , upload-time = "2024-11-27T22:37:59.344Z" } ,
{ url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e" , size = 240898 , upload-time = "2024-11-27T22:38:00.429Z" } ,
{ url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4" , size = 229894 , upload-time = "2024-11-27T22:38:02.094Z" } ,
{ url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl" , hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106" , size = 245319 , upload-time = "2024-11-27T22:38:03.206Z" } ,
{ url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8" , size = 238273 , upload-time = "2024-11-27T22:38:04.217Z" } ,
{ url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl" , hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff" , size = 98310 , upload-time = "2024-11-27T22:38:05.908Z" } ,
{ url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl" , hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b" , size = 108309 , upload-time = "2024-11-27T22:38:06.812Z" } ,
{ url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea" , size = 132762 , upload-time = "2024-11-27T22:38:07.731Z" } ,
{ url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8" , size = 123453 , upload-time = "2024-11-27T22:38:09.384Z" } ,
{ url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192" , size = 233486 , upload-time = "2024-11-27T22:38:10.329Z" } ,
{ url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222" , size = 242349 , upload-time = "2024-11-27T22:38:11.443Z" } ,
{ url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77" , size = 252159 , upload-time = "2024-11-27T22:38:13.099Z" } ,
{ url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6" , size = 237243 , upload-time = "2024-11-27T22:38:14.766Z" } ,
{ url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd" , size = 259645 , upload-time = "2024-11-27T22:38:15.843Z" } ,
{ url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e" , size = 244584 , upload-time = "2024-11-27T22:38:17.645Z" } ,
{ url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl" , hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98" , size = 98875 , upload-time = "2024-11-27T22:38:19.159Z" } ,
{ url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl" , hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4" , size = 109418 , upload-time = "2024-11-27T22:38:20.064Z" } ,
{ url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7" , size = 132708 , upload-time = "2024-11-27T22:38:21.659Z" } ,
{ url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c" , size = 123582 , upload-time = "2024-11-27T22:38:22.693Z" } ,
{ url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13" , size = 232543 , upload-time = "2024-11-27T22:38:24.367Z" } ,
{ url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281" , size = 241691 , upload-time = "2024-11-27T22:38:26.081Z" } ,
{ url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272" , size = 251170 , upload-time = "2024-11-27T22:38:27.921Z" } ,
{ url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140" , size = 236530 , upload-time = "2024-11-27T22:38:29.591Z" } ,
{ url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2" , size = 258666 , upload-time = "2024-11-27T22:38:30.639Z" } ,
{ url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744" , size = 243954 , upload-time = "2024-11-27T22:38:31.702Z" } ,
{ url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl" , hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec" , size = 98724 , upload-time = "2024-11-27T22:38:32.837Z" } ,
{ url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl" , hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69" , size = 109383 , upload-time = "2024-11-27T22:38:34.455Z" } ,
{ url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl" , hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc" , size = 14257 , upload-time = "2024-11-27T22:38:35.385Z" } ,
{ url = "https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e /tabulate-0.10 .0-py3-none-any.whl" , hash = "sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3 " , size = 39814 , upload-time = "2026-03 -04 T18:55:31.284 Z" } ,
]
[ [ package ] ]
name = "tomlkit"
version = "0.13.3 "
version = "0.14.0 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575 /tomlkit-0.13.3 .tar.gz" , hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1 " , size = 185207 , upload-time = "2025-06-05 T07 :13:44.947 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a /tomlkit-0.14.0 .tar.gz" , hash = "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064 " , size = 187167 , upload-time = "2026-01-13 T01 :14:53.304 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85 /tomlkit-0.13.3 -py3-none-any.whl" , hash = "sha256:c89c649d79ee40629a9fda55 f8ace8c6a1b42deb912b2a8fd8d942ddadb606b 0" , size = 38901 , upload-time = "2025-06-05 T07 :13:43.546 Z" } ,
]
[ [ package ] ]
name = "typing-extensions"
version = "4.14.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz" , hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36" , size = 107673 , upload-time = "2025-07-04T13:28:34.16Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl" , hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76" , size = 43906 , upload-time = "2025-07-04T13:28:32.743Z" } ,
{ url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814 /tomlkit-0.14.0 -py3-none-any.whl" , hash = "sha256:592064ed85b40fa213469 f81 ac584f67a4f2992509a7c3ea2d632208623a368 0" , size = 39310 , upload-time = "2026-01-13 T01 :14:51.965 Z" } ,
]
[ [ package ] ]
name = "urllib3"
version = "2.5.0 "
version = "2.6.3 "
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc /urllib3-2.5.0 .tar.gz" , hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 " , size = 393185 , upload-time = "2025 -06-18T14:07:41.644 Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3 /urllib3-2.6.3 .tar.gz" , hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed " , size = 435556 , upload-time = "2026 -01-07T16:24:43.925 Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185 /urllib3-2.5.0 -py3-none-any.whl" , hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc " , size = 129795 , upload-time = "2025-06-18T14:07:40.39 Z" } ,
]
[ [ package ] ]
name = "wrapt"
version = "1.17.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz" , hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3" , size = 55531 , upload-time = "2025-01-14T10:35:45.465Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/cd/f7/a2aab2cbc7a665efab072344a8949a71081eed1d2f451f7f7d2b966594a2/wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl" , hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58" , size = 53308 , upload-time = "2025-01-14T10:33:33.992Z" } ,
{ url = "https://files.pythonhosted.org/packages/50/ff/149aba8365fdacef52b31a258c4dc1c57c79759c335eff0b3316a2664a64/wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl" , hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda" , size = 38488 , upload-time = "2025-01-14T10:33:35.264Z" } ,
{ url = "https://files.pythonhosted.org/packages/65/46/5a917ce85b5c3b490d35c02bf71aedaa9f2f63f2d15d9949cc4ba56e8ba9/wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl" , hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438" , size = 38776 , upload-time = "2025-01-14T10:33:38.28Z" } ,
{ url = "https://files.pythonhosted.org/packages/ca/74/336c918d2915a4943501c77566db41d1bd6e9f4dbc317f356b9a244dfe83/wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a" , size = 83776 , upload-time = "2025-01-14T10:33:40.678Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/99/c0c844a5ccde0fe5761d4305485297f91d67cf2a1a824c5f282e661ec7ff/wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000" , size = 75420 , upload-time = "2025-01-14T10:33:41.868Z" } ,
{ url = "https://files.pythonhosted.org/packages/b4/b0/9fc566b0fe08b282c850063591a756057c3247b2362b9286429ec5bf1721/wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6" , size = 83199 , upload-time = "2025-01-14T10:33:43.598Z" } ,
{ url = "https://files.pythonhosted.org/packages/9d/4b/71996e62d543b0a0bd95dda485219856def3347e3e9380cc0d6cf10cfb2f/wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl" , hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b" , size = 82307 , upload-time = "2025-01-14T10:33:48.499Z" } ,
{ url = "https://files.pythonhosted.org/packages/39/35/0282c0d8789c0dc9bcc738911776c762a701f95cfe113fb8f0b40e45c2b9/wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl" , hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662" , size = 75025 , upload-time = "2025-01-14T10:33:51.191Z" } ,
{ url = "https://files.pythonhosted.org/packages/4f/6d/90c9fd2c3c6fee181feecb620d95105370198b6b98a0770cba090441a828/wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl" , hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72" , size = 81879 , upload-time = "2025-01-14T10:33:52.328Z" } ,
{ url = "https://files.pythonhosted.org/packages/8f/fa/9fb6e594f2ce03ef03eddbdb5f4f90acb1452221a5351116c7c4708ac865/wrapt-1.17.2-cp311-cp311-win32.whl" , hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317" , size = 36419 , upload-time = "2025-01-14T10:33:53.551Z" } ,
{ url = "https://files.pythonhosted.org/packages/47/f8/fb1773491a253cbc123c5d5dc15c86041f746ed30416535f2a8df1f4a392/wrapt-1.17.2-cp311-cp311-win_amd64.whl" , hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3" , size = 38773 , upload-time = "2025-01-14T10:33:56.323Z" } ,
{ url = "https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl" , hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925" , size = 53799 , upload-time = "2025-01-14T10:33:57.4Z" } ,
{ url = "https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl" , hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392" , size = 38821 , upload-time = "2025-01-14T10:33:59.334Z" } ,
{ url = "https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl" , hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40" , size = 38919 , upload-time = "2025-01-14T10:34:04.093Z" } ,
{ url = "https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d" , size = 88721 , upload-time = "2025-01-14T10:34:07.163Z" } ,
{ url = "https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b" , size = 80899 , upload-time = "2025-01-14T10:34:09.82Z" } ,
{ url = "https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98" , size = 89222 , upload-time = "2025-01-14T10:34:11.258Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl" , hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82" , size = 86707 , upload-time = "2025-01-14T10:34:12.49Z" } ,
{ url = "https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl" , hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae" , size = 79685 , upload-time = "2025-01-14T10:34:15.043Z" } ,
{ url = "https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl" , hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9" , size = 87567 , upload-time = "2025-01-14T10:34:16.563Z" } ,
{ url = "https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl" , hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9" , size = 36672 , upload-time = "2025-01-14T10:34:17.727Z" } ,
{ url = "https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl" , hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991" , size = 38865 , upload-time = "2025-01-14T10:34:19.577Z" } ,
{ url = "https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl" , hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125" , size = 53800 , upload-time = "2025-01-14T10:34:21.571Z" } ,
{ url = "https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl" , hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998" , size = 38824 , upload-time = "2025-01-14T10:34:22.999Z" } ,
{ url = "https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl" , hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5" , size = 38920 , upload-time = "2025-01-14T10:34:25.386Z" } ,
{ url = "https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8" , size = 88690 , upload-time = "2025-01-14T10:34:28.058Z" } ,
{ url = "https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6" , size = 80861 , upload-time = "2025-01-14T10:34:29.167Z" } ,
{ url = "https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc" , size = 89174 , upload-time = "2025-01-14T10:34:31.702Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl" , hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2" , size = 86721 , upload-time = "2025-01-14T10:34:32.91Z" } ,
{ url = "https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl" , hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b" , size = 79763 , upload-time = "2025-01-14T10:34:34.903Z" } ,
{ url = "https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl" , hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504" , size = 87585 , upload-time = "2025-01-14T10:34:36.13Z" } ,
{ url = "https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl" , hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a" , size = 36676 , upload-time = "2025-01-14T10:34:37.962Z" } ,
{ url = "https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl" , hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845" , size = 38871 , upload-time = "2025-01-14T10:34:39.13Z" } ,
{ url = "https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl" , hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192" , size = 56312 , upload-time = "2025-01-14T10:34:40.604Z" } ,
{ url = "https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl" , hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b" , size = 40062 , upload-time = "2025-01-14T10:34:45.011Z" } ,
{ url = "https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl" , hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0" , size = 40155 , upload-time = "2025-01-14T10:34:47.25Z" } ,
{ url = "https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" , hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306" , size = 113471 , upload-time = "2025-01-14T10:34:50.934Z" } ,
{ url = "https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl" , hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb" , size = 101208 , upload-time = "2025-01-14T10:34:52.297Z" } ,
{ url = "https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl" , hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681" , size = 109339 , upload-time = "2025-01-14T10:34:53.489Z" } ,
{ url = "https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl" , hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6" , size = 110232 , upload-time = "2025-01-14T10:34:55.327Z" } ,
{ url = "https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl" , hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6" , size = 100476 , upload-time = "2025-01-14T10:34:58.055Z" } ,
{ url = "https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl" , hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f" , size = 106377 , upload-time = "2025-01-14T10:34:59.3Z" } ,
{ url = "https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl" , hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555" , size = 37986 , upload-time = "2025-01-14T10:35:00.498Z" } ,
{ url = "https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl" , hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c" , size = 40750 , upload-time = "2025-01-14T10:35:03.378Z" } ,
{ url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl" , hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8" , size = 23594 , upload-time = "2025-01-14T10:35:44.018Z" } ,
{ url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84 /urllib3-2.6.3 -py3-none-any.whl" , hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4 " , size = 131584 , upload-time = "2026-01-07T16:24:42.685 Z" } ,
]
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
User to block:
Cancel
Block