Other articles


  1. Updating your setup.py files to the newer format

    One of the not so nice things about legacy installable python packages is the executable nature of setup.py files. This means amongst other things that you can't reliably determine the contents of some setup.py files without arbitrary code execution. This is what led to PEP 518 which specified a declarative metadata format that can be stored in easy to parse file. Updating is a pain though, but thankfully there's some tooling that makes this easier as I found out recently.


    read more
  2. Creating your own user events in pygame

    Here's how you can create your own user events in Pygame.


    read more
  3. Unicode whitespaces in Python

    Getting a list of all the Unicode whitespace characters is less straightforward than I would have hoped.


    read more
  4. Finding out what a python script imports

    Finding out what a Python module imports


    read more
  5. Pylint false positives with C extensions

    Pylint can give you false positives for missing-member errors when C extensions are involved, here's why and what you can do to avoid the issue.


    read more
  6. Have we reached peak Python?

    Has Python reached the peak of the hype cycle?


    read more
  7. What causes Pylint no-member false positives and how to deal with this

    SQLAlchemy when used with Pylint complains about some false positives. Here's an explanation of why and what you can do about it.


    read more
  8. Sorting IP addresses in Python

    A small example of a way you can sort IP addresses in Python.


    read more
  9. Page requests to the metal - Backend web framework

    There's a large number of steps of abstraction in the modern web stack. Let's follow through everything that happens in between submitting a form to a very "simple" web app that adds together two numbers from the form. This part focuses on the back end web framework portion of the stack. We use Django as an example here.


    read more

Page 1 / 5 »