Skip to content

r8vnhill/python-dibs

DIBS Course Companion Repository

Python uv License: BSD-2-Clause Educational Status DIBS Site

This repository contains companion code for the course "Diseño e Implementación de Bibliotecas de Software" (DIBS).

Note

While the course is taught in Spanish, the code and documentation here are in English to ensure clarity, accessibility, and alignment with broader software development conventions.

📖 Table of Contents

🎓 Lessons

This repository includes working examples and code fragments discussed in the following lessons from the DIBS course:

  1. 📘 Variable Declarations: Learn how Python’s flexible approach to variables and properties enables rapid development, while also exploring the trade-offs it presents when building maintainable libraries.
  2. 📘 Sum Types as Enumerations in Python: Exploring how to model sum types using Enum and match in Python, introduced in Python 3.10.
  3. 📘 Advanced Modeling with Enumerations: A deeper dive into using Enum for more complex data modeling scenarios.

More lessons will be added as the course progresses.

🧑‍💻 Getting Started

Requirements

  • Python 3.10 or higher
  • uv for running the examples
  • Recommended: PyCharm or any other Python IDE for a better development experience.

For installation help, see the setup guide.

Clone the Repository

To get started, clone the repository to your local machine:

git clone https://gitlab.com/r8vnhill/python-dibs.git
cd python-dibs

To run the examples, you can use the uv command:

uv run <example_file.py>

Replace <example_file.py> with the specific Python file you want to run.

For example:

uv run type-fundamentals/basics/main.py

🛡️ License

This project is licensed under the BSD 2-Clause License.

You may use, adapt, and share this code freely for personal, academic, or educational purposes, as long as attribution is given.

🌐 DIBS Website

To access the full course (in Spanish), visit: 👉 https://dibs.ravenhill.cl

There you'll find lesson explanations, exercises, and supporting materials.