O'Reilly logo
live online training icon Live Online training

Beyond Python Scripts: Logging, Modules, And Dependency Management

Developing complex applications

Aaron Maxwell

Large-scale applications need thoughtfully organized modules, expressive logging, and robust tools for managing dependencies. Otherwise, the whole effort collapses under crushing complexity.

Join expert Pythonista Aaron Maxwell to master Python’s key features for the successful, graceful, and effective development of large-scale software. You’ll learn the key principles of logging; how to create reusable modules for your code and gracefully evolve them as requirements shift; how to intelligently organize large code bases so they can be written in parallel by several engineers at once (without anyone stepping on anyone's toes); and how to track and manage your application’s dependencies.

Special Note: This course is paired with Python for applications: Exceptions, error handling, and command-line interfaces. Although these courses are designed to be taken in either order, we recommend taking that course after this one.

What you'll learn-and how you can apply it

  • The different needs of robust, mission-critical Python applications compared to one-shot scripts
  • The techniques, principles, and best practices for useful logging
  • The practical organization of code into Python modules
  • How to successfully develop increasingly complex software so it doesn't collapse under its own complexity
  • How to leverage Pythonic features to improve reliability, maintainability, and robustness
  • The best ways to manage dependencies for your Python application

And you’ll be able to:

  • Organize your codebase so it can be worked on by a team of developers in parallel
  • Painlessly evolve your module structure as requirements and the code base evolve
  • Write more powerful Python code, packaged in ways more easily reusable by other developers
  • Use higher-level abstractions to produce reusable code and reduce complexity and errors
  • Write Python code that’s concise, readable, and highly maintainable
  • Advise your teammates on potently powerful Python patterns and crucial best practices

This training course is for you because...

  • You’re a web developer ready to take on more complex and extensive web applications.
  • You’re a QA engineer who wants to develop robust, higher-level test automation frameworks.
  • You’re a data scientist ready to build sophisticated and reliable data engineering applications.
  • You’re a tech lead or engineering manager who wants to improve code reuse and organization within your team and increase the velocity of your sprints.
  • You want to improve your Python knowledge to ace an interview and land that dream job.
  • You’re a software engineer who cares about robust, reliable, and maintainable code and wants to see a wider positive impact from your coding efforts.


  • Complete the Python Labs Prep
  • Experience writing Python scripts and small programs for practical work situations
  • Basic mastery of Python data structures (like dicts and lists) and writing simple classes in Python
  • Experience writing mid-sized and larger applications in any language (useful but not required)

Materials or downloads needed in advance:

  • A machine with Python 3.6+ (recommended) or Python 2.7 installed

Recommended preparation:

Recommended follow-up:

About your instructor

  • Aaron Maxwell is author of the book "Powerful Python: The Most Impactful Patterns, Features, and Development Strategies Modern Python Provides." As a software engineer, he has worked in devops, test automation, and machine learning, and now divides his time between coding, writing, and teaching


The timeframes are only estimates and may vary according to how the class is progressing

  • Python's logging system
  • Logging design patterns
  • Module organization
  • How to evolve reusable Python modules as requirements change
  • Dependency management