{"id":18052646,"url":"https://github.com/cham11ng/decorators-and-mixin-classes","last_synced_at":"2026-03-03T21:02:11.469Z","repository":{"id":53662918,"uuid":"169749804","full_name":"cham11ng/decorators-and-mixin-classes","owner":"cham11ng","description":"Presentation examples for Decorators and Mixin Classes in Python","archived":false,"fork":false,"pushed_at":"2026-02-17T03:02:18.000Z","size":27,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-17T09:19:44.601Z","etag":null,"topics":["classes","decorators","flask","logging","mixin","python"],"latest_commit_sha":null,"homepage":"https://sagarchamling.com/slides/decorators-and-mixin-classes-in-python/","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/cham11ng.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,"zenodo":null}},"created_at":"2019-02-08T14:49:32.000Z","updated_at":"2026-02-17T03:02:20.000Z","dependencies_parsed_at":"2022-09-09T17:11:50.211Z","dependency_job_id":"beb75412-990c-47ab-8ac7-1516647a68dc","html_url":"https://github.com/cham11ng/decorators-and-mixin-classes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cham11ng/decorators-and-mixin-classes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cham11ng%2Fdecorators-and-mixin-classes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cham11ng%2Fdecorators-and-mixin-classes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cham11ng%2Fdecorators-and-mixin-classes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cham11ng%2Fdecorators-and-mixin-classes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cham11ng","download_url":"https://codeload.github.com/cham11ng/decorators-and-mixin-classes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cham11ng%2Fdecorators-and-mixin-classes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["classes","decorators","flask","logging","mixin","python"],"created_at":"2024-10-30T23:12:35.694Z","updated_at":"2026-03-03T21:02:11.447Z","avatar_url":"https://github.com/cham11ng.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Decorators and Mixin Classes in Python\n\nThis presentation is about the compositional pattern in Python using Decorators and Mixin Classes. It will focus on how we could utilize compositional pattern in python using ideas of higher order functions and mixin classes. It also goes beyond decorators and into the world of Mixin classes for the advanced compositional pattern by manipulating \"method resolution order\" in order to achieve the abstractions. See presentation [here](https://sagarchamling.com/slides/decorators-and-mixin-classes-in-python/).\n\n## Requirement\n\n- Python (v3.6+)\n- virtualenv\n\n## Installation\n\n```bash\nsudo apt install python3-venv\n\ngit clone git@github.com:cham11ng/decorators-and-mixin-classes.git\n\npython3.6 -m venv venv\n\n. venv/bin/activate\n\npip install -r requirements.txt\n```\n\n## Getting Started\n\n```bash\nFLASK_ENV=development FLASK_APP=main.py flask run\n```\n\n## Implementation\n\n- https://github.com/RobusGauli/jsonvalidate\n\n## Contributor\n\n[cham11ng](https://github.com/cham11ng) | 2019\n\nSpecial Thanks to [RobusGauli](https://github.com/RobusGauli)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcham11ng%2Fdecorators-and-mixin-classes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcham11ng%2Fdecorators-and-mixin-classes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcham11ng%2Fdecorators-and-mixin-classes/lists"}