From 132f42cf28f4eca13539f0af30b92e54ab9fa6bb Mon Sep 17 00:00:00 2001 From: RGBCube <78925721+RGBCube@users.noreply.github.com> Date: Sun, 26 Jun 2022 17:25:36 +0300 Subject: [PATCH] Fix all params appearing as NotRequired[...] --- tools/{a.py => output.py} | 234 +++++++++++++++++++------------------- tools/unschema/parser.py | 3 +- 2 files changed, 119 insertions(+), 118 deletions(-) rename tools/{a.py => output.py} (66%) diff --git a/tools/a.py b/tools/output.py similarity index 66% rename from tools/a.py rename to tools/output.py index ebe6b4a..32e25c3 100644 --- a/tools/a.py +++ b/tools/output.py @@ -8,16 +8,16 @@ if TYPE_CHECKING: class LicenseSimple(TypedDict): # Example: mit - key: NotRequired[str] + key: str # Example: MIT License - name: NotRequired[str] + name: str # Format: uri # Example: https://api.github.com/licenses/mit - url: NotRequired[Optional[str]] + url: Optional[str] # Example: MIT - spdx_id: NotRequired[Optional[str]] + spdx_id: Optional[str] # Example: MDc6TGljZW5zZW1pdA== - node_id: NotRequired[str] + node_id: str # Format: uri html_url: NotRequired[str] @@ -26,57 +26,57 @@ class SimpleUser(TypedDict): name: NotRequired[Optional[str]] email: NotRequired[Optional[str]] # Example: octocat - login: NotRequired[str] + login: str # Example: 1 - id: NotRequired[int] + id: int # Example: MDQ6VXNlcjE= - node_id: NotRequired[str] + node_id: str # Format: uri # Example: https://github.com/images/error/octocat_happy.gif - avatar_url: NotRequired[str] + avatar_url: str # Example: 41d064eb2195891e12d0413f63227ea7 - gravatar_id: NotRequired[Optional[str]] + gravatar_id: Optional[str] # Format: uri # Example: https://api.github.com/users/octocat - url: NotRequired[str] + url: str # Format: uri # Example: https://github.com/octocat - html_url: NotRequired[str] + html_url: str # Format: uri # Example: https://api.github.com/users/octocat/followers - followers_url: NotRequired[str] + followers_url: str # Example: https://api.github.com/users/octocat/following{/other_user} - following_url: NotRequired[str] + following_url: str # Example: https://api.github.com/users/octocat/gists{/gist_id} - gists_url: NotRequired[str] + gists_url: str # Example: https://api.github.com/users/octocat/starred{/owner}{/repo} - starred_url: NotRequired[str] + starred_url: str # Format: uri # Example: https://api.github.com/users/octocat/subscriptions - subscriptions_url: NotRequired[str] + subscriptions_url: str # Format: uri # Example: https://api.github.com/users/octocat/orgs - organizations_url: NotRequired[str] + organizations_url: str # Format: uri # Example: https://api.github.com/users/octocat/repos - repos_url: NotRequired[str] + repos_url: str # Example: https://api.github.com/users/octocat/events{/privacy} - events_url: NotRequired[str] + events_url: str # Format: uri # Example: https://api.github.com/users/octocat/received_events - received_events_url: NotRequired[str] + received_events_url: str # Example: User - type: NotRequired[str] - site_admin: NotRequired[bool] + type: str + site_admin: bool # Example: "2020-07-09T00:17:55Z" starred_at: NotRequired[str] class Permissions(TypedDict): - admin: NotRequired[bool] - pull: NotRequired[bool] + admin: bool + pull: bool triage: NotRequired[bool] - push: NotRequired[bool] + push: bool maintain: NotRequired[bool] @@ -84,213 +84,213 @@ class SimpleUser(TypedDict): name: NotRequired[Optional[str]] email: NotRequired[Optional[str]] # Example: octocat - login: NotRequired[str] + login: str # Example: 1 - id: NotRequired[int] + id: int # Example: MDQ6VXNlcjE= - node_id: NotRequired[str] + node_id: str # Format: uri # Example: https://github.com/images/error/octocat_happy.gif - avatar_url: NotRequired[str] + avatar_url: str # Example: 41d064eb2195891e12d0413f63227ea7 - gravatar_id: NotRequired[Optional[str]] + gravatar_id: Optional[str] # Format: uri # Example: https://api.github.com/users/octocat - url: NotRequired[str] + url: str # Format: uri # Example: https://github.com/octocat - html_url: NotRequired[str] + html_url: str # Format: uri # Example: https://api.github.com/users/octocat/followers - followers_url: NotRequired[str] + followers_url: str # Example: https://api.github.com/users/octocat/following{/other_user} - following_url: NotRequired[str] + following_url: str # Example: https://api.github.com/users/octocat/gists{/gist_id} - gists_url: NotRequired[str] + gists_url: str # Example: https://api.github.com/users/octocat/starred{/owner}{/repo} - starred_url: NotRequired[str] + starred_url: str # Format: uri # Example: https://api.github.com/users/octocat/subscriptions - subscriptions_url: NotRequired[str] + subscriptions_url: str # Format: uri # Example: https://api.github.com/users/octocat/orgs - organizations_url: NotRequired[str] + organizations_url: str # Format: uri # Example: https://api.github.com/users/octocat/repos - repos_url: NotRequired[str] + repos_url: str # Example: https://api.github.com/users/octocat/events{/privacy} - events_url: NotRequired[str] + events_url: str # Format: uri # Example: https://api.github.com/users/octocat/received_events - received_events_url: NotRequired[str] + received_events_url: str # Example: User - type: NotRequired[str] - site_admin: NotRequired[bool] + type: str + site_admin: bool # Example: "2020-07-09T00:17:55Z" starred_at: NotRequired[str] class Repository(TypedDict): # Example: 42 - id: NotRequired[int] + id: int # Example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5 - node_id: NotRequired[str] + node_id: str # Example: Team Environment - name: NotRequired[str] + name: str # Example: octocat/Hello-World - full_name: NotRequired[str] - license: NotRequired[Optional[LicenseSimple]] + full_name: str + license: Optional[LicenseSimple] organization: NotRequired[Optional[SimpleUser]] - forks: NotRequired[int] + forks: int permissions: NotRequired[Permissions] - owner: NotRequired[SimpleUser] - private: NotRequired[bool] + owner: SimpleUser + private: bool # Format: uri # Example: https://github.com/octocat/Hello-World - html_url: NotRequired[str] + html_url: str # Example: This your first repo! - description: NotRequired[Optional[str]] - fork: NotRequired[bool] + description: Optional[str] + fork: bool # Format: uri # Example: https://api.github.com/repos/octocat/Hello-World - url: NotRequired[str] + url: str # Example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref} - archive_url: NotRequired[str] + archive_url: str # Example: http://api.github.com/repos/octocat/Hello-World/assignees{/user} - assignees_url: NotRequired[str] + assignees_url: str # Example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha} - blobs_url: NotRequired[str] + blobs_url: str # Example: http://api.github.com/repos/octocat/Hello-World/branches{/branch} - branches_url: NotRequired[str] + branches_url: str # Example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator} - collaborators_url: NotRequired[str] + collaborators_url: str # Example: http://api.github.com/repos/octocat/Hello-World/comments{/number} - comments_url: NotRequired[str] + comments_url: str # Example: http://api.github.com/repos/octocat/Hello-World/commits{/sha} - commits_url: NotRequired[str] + commits_url: str # Example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head} - compare_url: NotRequired[str] + compare_url: str # Example: http://api.github.com/repos/octocat/Hello-World/contents/{+path} - contents_url: NotRequired[str] + contents_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/contributors - contributors_url: NotRequired[str] + contributors_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/deployments - deployments_url: NotRequired[str] + deployments_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/downloads - downloads_url: NotRequired[str] + downloads_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/events - events_url: NotRequired[str] + events_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/forks - forks_url: NotRequired[str] + forks_url: str # Example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha} - git_commits_url: NotRequired[str] + git_commits_url: str # Example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha} - git_refs_url: NotRequired[str] + git_refs_url: str # Example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha} - git_tags_url: NotRequired[str] + git_tags_url: str # Example: git:github.com/octocat/Hello-World.git - git_url: NotRequired[str] + git_url: str # Example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} - issue_comment_url: NotRequired[str] + issue_comment_url: str # Example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number} - issue_events_url: NotRequired[str] + issue_events_url: str # Example: http://api.github.com/repos/octocat/Hello-World/issues{/number} - issues_url: NotRequired[str] + issues_url: str # Example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id} - keys_url: NotRequired[str] + keys_url: str # Example: http://api.github.com/repos/octocat/Hello-World/labels{/name} - labels_url: NotRequired[str] + labels_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/languages - languages_url: NotRequired[str] + languages_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/merges - merges_url: NotRequired[str] + merges_url: str # Example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} - milestones_url: NotRequired[str] + milestones_url: str # Example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} - notifications_url: NotRequired[str] + notifications_url: str # Example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} - pulls_url: NotRequired[str] + pulls_url: str # Example: http://api.github.com/repos/octocat/Hello-World/releases{/id} - releases_url: NotRequired[str] + releases_url: str # Example: git@github.com:octocat/Hello-World.git - ssh_url: NotRequired[str] + ssh_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/stargazers - stargazers_url: NotRequired[str] + stargazers_url: str # Example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} - statuses_url: NotRequired[str] + statuses_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/subscribers - subscribers_url: NotRequired[str] + subscribers_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/subscription - subscription_url: NotRequired[str] + subscription_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/tags - tags_url: NotRequired[str] + tags_url: str # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/teams - teams_url: NotRequired[str] + teams_url: str # Example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha} - trees_url: NotRequired[str] + trees_url: str # Example: https://github.com/octocat/Hello-World.git - clone_url: NotRequired[str] + clone_url: str # Format: uri # Example: git:git.example.com/octocat/Hello-World - mirror_url: NotRequired[Optional[str]] + mirror_url: Optional[str] # Format: uri # Example: http://api.github.com/repos/octocat/Hello-World/hooks - hooks_url: NotRequired[str] + hooks_url: str # Format: uri # Example: https://svn.github.com/octocat/Hello-World - svn_url: NotRequired[str] + svn_url: str # Format: uri # Example: https://github.com - homepage: NotRequired[Optional[str]] - language: NotRequired[Optional[str]] + homepage: Optional[str] + language: Optional[str] # Example: 9 - forks_count: NotRequired[int] + forks_count: int # Example: 80 - stargazers_count: NotRequired[int] + stargazers_count: int # Example: 80 - watchers_count: NotRequired[int] + watchers_count: int # Example: 108 - size: NotRequired[int] + size: int # Example: master - default_branch: NotRequired[str] + default_branch: str # Example: 0 - open_issues_count: NotRequired[int] + open_issues_count: int # Example: True is_template: NotRequired[bool] topics: NotRequired[List[str]] # Example: True - has_issues: NotRequired[bool] + has_issues: bool # Example: True - has_projects: NotRequired[bool] + has_projects: bool # Example: True - has_wiki: NotRequired[bool] - has_pages: NotRequired[bool] + has_wiki: bool + has_pages: bool # Example: True - has_downloads: NotRequired[bool] - archived: NotRequired[bool] - disabled: NotRequired[bool] + has_downloads: bool + archived: bool + disabled: bool visibility: NotRequired[str] # Format: date-time # Example: 2011-01-26T19:06:43Z - pushed_at: NotRequired[Optional[str]] + pushed_at: Optional[str] # Format: date-time # Example: 2011-01-26T19:01:12Z - created_at: NotRequired[Optional[str]] + created_at: Optional[str] # Format: date-time # Example: 2011-01-26T19:14:43Z - updated_at: NotRequired[Optional[str]] + updated_at: Optional[str] # Example: True allow_rebase_merge: NotRequired[bool] template_repository: NotRequired[Optional[dict]] @@ -309,8 +309,8 @@ class Repository(TypedDict): allow_forking: NotRequired[bool] subscribers_count: NotRequired[int] network_count: NotRequired[int] - open_issues: NotRequired[int] - watchers: NotRequired[int] + open_issues: int + watchers: int master_branch: NotRequired[str] # Example: "2020-07-09T00:17:42Z" starred_at: NotRequired[str] diff --git a/tools/unschema/parser.py b/tools/unschema/parser.py index 97fe3d2..3cbe1aa 100644 --- a/tools/unschema/parser.py +++ b/tools/unschema/parser.py @@ -126,7 +126,8 @@ def generate_typed_dicts_from_json_schema( value, title=key.capitalize(), no_comments=no_comments ) result.append(extras) - if param_annotation not in obj.get("required", []): + + if key not in obj.get("required", []): param_annotation = f"NotRequired[{param_annotation}]" if not no_comments: