One of my current projects is trying to automate legal documents from my iPad by using Python. I made significant progress and can generate a 50+ page lease with variable fill-ins and different clauses (and even riders) coming in or out. But I’m still improving the process. I’m wrestling with saving the data that a user inputs so I can retrieve it in a later session.

Problem: Deprecation Warning

On my iPad, I’m using Pyto for my Python code. But one of the Python packages on which I rely, python-docx-template, was causing the following deprecation warning:

Documents/site-packages/docx/section.py:7: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working                                                                                                   
  from collections import Sequence            

I mainly identify as a lawyer, so I spend much of my time perusing the law in primary and secondary sources. I don’t mind spending time studying tangential tools (such as Python) to help with my legal practice. But I don’t want to invest my time on something that might be deprecated. So, I reached out to the developer of python-docx-template.

The developer of python-docx-template informed me that the error message stems from a sub-package on which it relies, python-docx.

I researched further and learned that the developer of python-docx released a fix on May 15, 2021 in version 0.8.11.

Problem Thickens

I checked Pyto. As the following screen captures show, it seemed that Pyto was running the latest version (0.8.11) of python-docx:

IMG_1736

IMG_1737

But I was still getting the deprecation warning:

IMG_1738

So, I reached out to the developer of python-docx-template again with the screen captures.

Resolution

The developer of python-docx-template had what seemed to me to be a cryptic reply: “what gives pip list?” This question seemed like one of the riddles my father tells in Arabic, where I’m not sure if I understood the riddle or the Arabic. But I like riddles, so I dug further.

I learned that pip list gives information on pip-managed Python packages.

Based on a comment on StackOverflow, I wrote the following code in Pyto:

import pip

pip.main(['list'])

The result surprised me:

IMG_1740

Despite my earlier screen captures, Pyto wasn’t using the latest version of python-docx. As the screen capture shows, Pyto was using version 0.8.10 instead of 0.8.11, which has the fix.

I followed the suggestion made by Pyto (see the following screen capture). I deleted python-docx and installed it again. I’m no longer getting the error message!

IMG_1742

Now, I can focus on the other document assembly issue I’m wrestling with: data serialization and deserialization in Python.