{"id":25774717,"url":"https://github.com/yanliu1111/learn_python_by_thinking_types","last_synced_at":"2026-06-14T15:34:13.397Z","repository":{"id":236663188,"uuid":"621155720","full_name":"yanliu1111/learn_python_by_thinking_types","owner":"yanliu1111","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-18T20:51:00.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-27T05:49:58.908Z","etag":null,"topics":["oop","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yanliu1111.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-30T05:15:48.000Z","updated_at":"2023-04-25T05:52:36.000Z","dependencies_parsed_at":"2024-04-28T05:55:21.096Z","dependency_job_id":"9442a05d-79fb-492f-87c0-0de63596dda7","html_url":"https://github.com/yanliu1111/learn_python_by_thinking_types","commit_stats":null,"previous_names":["yanliu1111/learn_python_by_thinking_types"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yanliu1111/learn_python_by_thinking_types","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanliu1111%2Flearn_python_by_thinking_types","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanliu1111%2Flearn_python_by_thinking_types/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanliu1111%2Flearn_python_by_thinking_types/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanliu1111%2Flearn_python_by_thinking_types/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yanliu1111","download_url":"https://codeload.github.com/yanliu1111/learn_python_by_thinking_types/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanliu1111%2Flearn_python_by_thinking_types/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285636559,"owners_count":27205878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-21T02:00:06.175Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["oop","python"],"created_at":"2025-02-27T05:33:02.804Z","updated_at":"2025-11-21T15:03:55.926Z","avatar_url":"https://github.com/yanliu1111.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Learn Python from Thinking Types\n\nThis repository is designed to provide a quick review of Python basics. The accompanying YouTube channel introduces a new teaching structure that follows a data type-centric approach.\n\nLearning resources [Basic Python learning](https://www.youtube.com/watch?v=jH85McHenvw).\n\nPS: After python 3.6, the type hints are not required. They are just a way to make the code more readable. The type hints are not enforced by the python interpreter. So, if you are using python 3.6 or above, you can skip the type hints. -- I know, I know, I am a bit late to the party.¯\\_(ツ)\\_/¯\n\n# Projects in part-09 and part-10\n\nI built two projects and overthought they look simple, they are densely packed with all above concepts.\n\n1. Cash Register\n2. SuperHero Game\n\n# Project2 - Packages - Thinking In Layers\n\nThe whole idea behind creating packages is to divide our application into logical sub-components.\nThese sub-components can be grouped by their type of functionality.\n\n## Layers for our game application\n\n| Sr No | Layer Name     | Particular                   | Visibility | Role      |\n| ----- | -------------- | ---------------------------- | ---------- | --------- |\n| 1     | Data Layer     | Package `models` \u0026 `schemas` | Private    | Internal  |\n| 2     | Business Logic | `impl.py`                    | Private    | Internal  |\n| 3     | API            | Package `game`               | Public     | Interface |\n| 4     | Client         | `main.py`                    |            | Consumer  |\n\nThis repo includes all what I want to practice and repeat. Some details check this excellent [tutorial repo](https://github.com/octallium/modern-python-101).👍\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanliu1111%2Flearn_python_by_thinking_types","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyanliu1111%2Flearn_python_by_thinking_types","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanliu1111%2Flearn_python_by_thinking_types/lists"}