{"schema_version":"bf_book_companion_v1","release_id":"20261010T034321Z-reviewed-full-unique-works","book":{"amazon_purchase_url":"https://www.amazon.com/dp/1098100662?tag=bookfrontie00-20","asin":"1098100662","authors":["Patrick Viafore"],"book_id":"9781098100667","canonical_url":"https://bookfrontier.com/books/robust-python-9781098100667","cover_image_url":"https://img.bookfrontier.com/9781098100667.jpg?v=cbd7ba402cf41489","description":"Does it seem like your Python projects are getting bigger and bigger? Are you feeling the pain as your codebase expands and gets tougher to debug and maintain? Python is an easy language to learn and use, but that also means systems can quickly grow beyond comprehension. Thankfully, Python has features to help developers overcome maintainability woes. In this practical book, author Patrick Viafore shows you how to use Python's type system to the max. You'll look at user-defined types, such as classes and enums, and Python's type hinting system. You'll also learn how to make Python extensible and how to use a comprehensive testing strategy as a safety net. With these tips and techniques, you'll write clearer and more maintainable code. - Learn why types are essential in modern development ecosystems - Understand how type choices such as classes, dictionaries, and enums reflect specific intents - Make Python extensible for the future without adding bloat - Use popular Python tools to increase the safety and robustness of your codebase - Evaluate current code to detect common maintainability gotchas - Build a safety net around your codebase with linters and tests","forthcoming":false,"isbn13":"9781098100667","publication_date":"20210817","publisher":"O'Reilly Media","slug":"robust-python","subtitle":"Write Clean and Maintainable Code","title":"Robust Python"},"discovery":{"categories":{"all":[{"bisac_code":"COM051360","confidence_band":"medium","label":"Python Programming","score":0.8134,"source":"bisac_hint_model"},{"bisac_code":"COM051390","confidence_band":"medium","label":"Open Source Development","score":0.7915,"source":"bisac_hint_model"},{"bisac_code":"COM051440","confidence_band":"medium","label":"Dev Tools & Workflow","score":0.7866,"source":"bisac_hint_model"}],"hint":[{"bisac_code":"COM051360","confidence_band":"medium","label":"Python Programming","score":0.8134,"source":"bisac_hint_model"},{"bisac_code":"COM051390","confidence_band":"medium","label":"Open Source Development","score":0.7915,"source":"bisac_hint_model"},{"bisac_code":"COM051440","confidence_band":"medium","label":"Dev Tools & Workflow","score":0.7866,"source":"bisac_hint_model"}],"publisher":[{"bisac_code":"COM051360","confidence_band":"high","label":"Python Programming","score":1,"source":"onix_publisher_code"},{"bisac_code":"COM051390","confidence_band":"high","label":"Open Source Development","score":1,"source":"onix_publisher_code"},{"bisac_code":"COM051440","confidence_band":"high","label":"Dev Tools & Workflow","score":1,"source":"onix_publisher_code"},{"bisac_code":"COM060160","confidence_band":"high","label":"Web Programming","score":1,"source":"onix_publisher_code"}]},"genres":[{"label":"Python Programming","score":0.8134,"slug":"python-programming"},{"label":"Open Source Development","score":0.7915,"slug":"open-source-development"},{"label":"Dev Tools & Workflow","score":0.7866,"slug":"dev-tools-workflow"}],"reader_fit":["Python developers seeking ways to maintain growing codebases"],"related_lists":[],"series":null,"similar_books":[{"authors":["Luciano Ramalho"],"book_id":"9781492056355","cover_image_url":"https://img.bookfrontier.com/9781492056355.jpg?v=8f7c16ee7ac055ff","score":0.7701,"title":"Fluent Python","url":"https://bookfrontier.com/books/9781492056355"},{"authors":["Mark Lutz"],"book_id":"9781449355739","cover_image_url":"https://img.bookfrontier.com/9781449355739.jpg?v=1eb2079b42d6b41d","score":0.7451,"title":"Learning Python","url":"https://bookfrontier.com/books/9781449355739"},{"authors":["Irv Kalb"],"book_id":"9781718502062","cover_image_url":"https://img.bookfrontier.com/9781718502062.jpg?v=ac5b6df199dfd337","score":0.7203,"title":"Object-oriented Python","url":"https://bookfrontier.com/books/9781718502062"},{"authors":["Catherine Nelson"],"book_id":"9781098136208","cover_image_url":"https://img.bookfrontier.com/9781098136208.jpg?v=e24a0b461acd44ae","score":0.6998,"title":"Software Engineering for Data Scientists","url":"https://bookfrontier.com/books/9781098136208"},{"authors":["Noah Gift","Kennedy Behrman","Alfredo Deza","Grig Gheorghiu"],"book_id":"9781492057697","cover_image_url":"https://img.bookfrontier.com/9781492057697.jpg?v=e9b42302c398c702","score":0.6977,"title":"Python for Devops","url":"https://bookfrontier.com/books/9781492057697"},{"authors":["Justin Seitz","Tim Arnold"],"book_id":"9781718501126","cover_image_url":"https://img.bookfrontier.com/9781718501126.jpg?v=d2ad50ef84c9c625","score":0.6969,"title":"Black Hat Python, 2nd Edition","url":"https://bookfrontier.com/books/9781718501126"},{"authors":["David Drysdale"],"book_id":"9781098151409","cover_image_url":"https://img.bookfrontier.com/9781098151409.jpg?v=5cdaf6069be5bd4e","score":0.6954,"title":"Effective Rust","url":"https://bookfrontier.com/books/9781098151409"},{"authors":["Robert C. Martin"],"book_id":"9780132350884","cover_image_url":"https://img.bookfrontier.com/9780132350884.jpg?v=b4c57cdf66347c98","score":0.6909,"title":"Clean Code","url":"https://bookfrontier.com/books/9780132350884"}],"topics":[],"what_you_get":["Themes: Python type systems, Code maintainability, Testing and code safety.","Reading lane: Python Programming and Open Source Development.","Publisher: O'Reilly Media."]},"llm_signals":{"confidence":0.94,"pacing":"unknown","reader_fit":["Python developers seeking ways to maintain growing codebases"],"themes":["Python type systems","Code maintainability","Testing and code safety"],"tropes":[]},"source_presence":{"amazon":true,"book_detail":true,"goodreads":true,"llm_signals":true,"similarity_seed":true},"stats":{"amazon_ratings_count":103,"goodreads_ratings_count":115,"goodreads_reviews_count":15,"quality_score":0.8832}}