Developers power their projects with Python because it emphasizes readability, ease of use, and access to a meticulously maintained set of packages and tools. The language itself continues to improve with every release: writing in Python is full of possibility. But to maintain a successful Python project, you need to know more than just the language. You need tooling and instincts to help you make the most out of what’s available to you. Use this book as your guide to help you hone your skills and sculpt a Python project that can stand the test of time.
No matter your experience level or background, Python’s batteries-included standard library and rich third-party ecosystem provide a solid foundation to build your projects on. With the right intuition and background knowledge, you can take advantage of all the power Python offers. Take a guided tour of some of Python’s high points to craft a project that you can sustain and build on for a long time.
Run static analysis tools to detect and eliminate classes of bugs before you run code. Experiment with Python’s concurrency model and develop patterns for using Python’s thread and process abstractions to their full potential. Introduce yourself to Python’s type hinting system: mypy. Download and run third-party Python packages and do so safely without compromising on security. Debug code using Python’s built in debugger, and try procedures out in the interactive console. Run your code under new versions of the Python interpreter to unlock performance and usability improvements. All along the way, sharpen your Python instincts so you can keep your code clean and reduce the chance of bugs.
Mine Python for all you can by playing to its strengths and embracing patterns that harness its potential.
What You Need:
The books assumes you have some experience programming in any language (not necessarily Python). To run the code presented in the book, you’ll need a Python environment which you can download from https://www.python.org/downloads/.
Acknowledgments Preface Who This Book Is For What’s Inside Using the Code in This Book 1. Diving into Life with Python Setting Up Your Environment and Using This Book’s Companion Docker Image Using Python’s Interactive Console to Run Programs Try Out Different Versions of Python with Docker Investigating with pdb Breakpoints Detecting Problems Early Formatting and Styling Your Code Consistently Wrapping Up 2. Shifting Up with the Standard Library Using the collections Module for Concise Code Creating Temporary Workspaces with tempfile Calling Other Programs with subprocess Using Python’s Built-In Database with sqlite3 Profiling Python Code with cProfile Wrapping Up 3. Ramping Up with Concurrent Code Approach Concurrency with Caution Meet Threads and Processes Using concurrent.futures to Run Code Concurrently Choosing ThreadPoolExecutor or ProcessPoolExecutor Staying Safe When Writing Concurrent Code Building with an Alternate Model: asyncio Wrapping Up 4. Avoiding Traps Serializing Python Objects with the pickle Module Handling Datetimes with Timezones Getting Caught with Sticky Default Arguments Wrapping Up 5. Standing Guard When Python Breaks Free Installing Third-Party Packages Securely with pip Maintaining Privacy in a Public World Keeping Your Source Organized Dodging Wildcard Variable Shadowing Wrapping Up
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.