{"id":13458877,"url":"https://github.com/cosmicpython/book","last_synced_at":"2025-05-13T21:04:13.491Z","repository":{"id":38151822,"uuid":"169220775","full_name":"cosmicpython/book","owner":"cosmicpython","description":"A Book about Pythonic Application Architecture Patterns for Managing Complexity.  Cosmos is the Opposite of Chaos you see. O'R. wouldn't actually let us call it \"Cosmic Python\" tho.","archived":false,"fork":false,"pushed_at":"2025-05-12T11:03:29.000Z","size":40959,"stargazers_count":3550,"open_issues_count":35,"forks_count":538,"subscribers_count":99,"default_branch":"master","last_synced_at":"2025-05-12T12:21:47.011Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.cosmicpython.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cosmicpython.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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-05T10:08:28.000Z","updated_at":"2025-05-12T11:03:32.000Z","dependencies_parsed_at":"2024-01-13T18:24:21.704Z","dependency_job_id":"888add9f-fc6e-44d2-8a53-e158bfd8714f","html_url":"https://github.com/cosmicpython/book","commit_stats":null,"previous_names":["python-leap/book"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmicpython%2Fbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmicpython%2Fbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmicpython%2Fbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmicpython%2Fbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cosmicpython","download_url":"https://codeload.github.com/cosmicpython/book/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028315,"owners_count":22002227,"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","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":[],"created_at":"2024-07-31T09:00:59.201Z","updated_at":"2025-05-13T21:04:13.449Z","avatar_url":"https://github.com/cosmicpython.png","language":"Python","funding_links":[],"categories":["Books","Python","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# Book repo\n\n| Book | Code |\n| ---- | ---- |\n| [![Book Build Status](https://travis-ci.org/cosmicpython/book.svg?branch=master)](https://travis-ci.org/cosmicpython/book) | [![Code build status](https://travis-ci.org/cosmicpython/code.svg?branch=master)](https://travis-ci.org/cosmicpython/code) |\n\n\n## Table of Contents\n\nO'Reilly have generously said that we will be able to publish this book under a [CC license](license.txt),\nIn the meantime, pull requests, typofixes, and more substantial feedback + suggestions are enthusiastically solicited.\n\n| Chapter |       |\n| ------- | ----- |\n| [Preface](preface.asciidoc) | |\n| [Introduction: Why do our designs go wrong?](introduction.asciidoc)| ||\n| [**Part 1 Intro**](part1.asciidoc) | |\n| [Chapter 1: Domain Model](chapter_01_domain_model.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_01_domain_model)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 2: Repository](chapter_02_repository.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_02_repository)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 3: Interlude: Abstractions](chapter_03_abstractions.asciidoc) | |\n| [Chapter 4: Service Layer (and Flask API)](chapter_04_service_layer.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_04_service_layer)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 5: TDD in High Gear and Low Gear](chapter_05_high_gear_low_gear.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_05_high_gear_low_gear)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 6: Unit of Work](chapter_06_uow.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_06_uow)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 7: Aggregates](chapter_07_aggregate.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_07_aggregate)](https://travis-ci.org/cosmicpython/code) |\n| [**Part 2 Intro**](part2.asciidoc) | |\n| [Chapter 8: Domain Events and a Simple Message Bus](chapter_08_events_and_message_bus.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_08_events_and_message_bus)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 9: Going to Town on the MessageBus](chapter_09_all_messagebus.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_09_all_messagebus)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 10: Commands](chapter_10_commands.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_10_commands)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 11: External Events for Integration](chapter_11_external_events.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_11_external_events)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 12: CQRS](chapter_12_cqrs.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_12_cqrs)](https://travis-ci.org/cosmicpython/code) |\n| [Chapter 13: Dependency Injection](chapter_13_dependency_injection.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=chapter_13_dependency_injection)](https://travis-ci.org/cosmicpython/code) |\n| [Epilogue: How do I get there from here?](epilogue_1_how_to_get_there_from_here.asciidoc) | |\n| [Appendix A: Recap table](appendix_ds1_table.asciidoc) | |\n| [Appendix B: Project Structure](appendix_project_structure.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=appendix_project_structure)](https://travis-ci.org/cosmicpython/code) |\n| [Appendix C: A major infrastructure change, made easy](appendix_csvs.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=appendix_csvs)](https://travis-ci.org/cosmicpython/code) |\n| [Appendix D: Django](appendix_django.asciidoc) | [![Build Status](https://travis-ci.org/cosmicpython/code.svg?branch=appendix_django)](https://travis-ci.org/cosmicpython/code) |\n| [Appendix F: Validation](appendix_validation.asciidoc) | |\n\n\n\n\nBelow is just instructions for me and bob really.\n\n## Dependencies:\n\n* asciidoctor\n* Pygments (for syntax higlighting)\n* asciidoctor-diagram (to render images from the text sources in [`./images`](./images))\n\n```sh\ngem install asciidoctor\npython2 -m pip install --user pygments\ngem install pygments.rb\ngem install asciidoctor-diagram\n```\n\n\n## Commands\n\n```sh\nmake html  # builds local .html versions of each chapter\nmake test  # does a sanity-check of the code listings\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmicpython%2Fbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmicpython%2Fbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmicpython%2Fbook/lists"}