Change history

RECENT VERSION HISTORY

First started in 2009.

Quick links:

2017

0.2.7, 2017-04-28

0.2.8, 2017-04-28

0.2.10, 2017-04-29

  • Text fetch (for converters) was returning bytes, not str; fixed.

0.2.11, 2017-04-29

  • Encoding auto-detection for text extraction from files.

0.2.12 to 0.2.13, 2017-05-02

  • More file types support for simple text extraction.

  • Better encoding support.

1.0.0, 2017-08-05

  • Consolidation of common functions from multiple projects to reduce code duplication. Some modules renamed.

1.0.1, 2017-08-14

  • PyPI/setup.py bugfix (not all subpackages were uploaded).

1.0.2, 2017-08-20 onwards

  • Metaclass functions added.

  • Extensions to SQLAlchemy utility functions.

1.0.3, 2017-10-18

  • Several small changes for CamCOPS.

… to 1.0.8, 2017-11-29

  • Similarly.

2018

1.0.9 to 1.0.10, 2018-01-05 + 2018-02-19

1.0.11, 2018-02-23

1.0.12, 2018-03-08

1.0.13, 2018-03-08

1.0.14, 2018-05-01

1.0.15, 2018-05-04

1.0.16, 2018-05-22

1.0.17, 2018-05-27

  • lazy dictionaries

1.0.18, 2018-06-29

  • update for Django 2.0+

  • update for Pendulum 2.0+

1.0.19 to 1.0.21, 2018-07-01 to 2018-07-02

1.0.22, 2018-07-07

  • as_sql (etc.) options to cardinal_pythonlib.sqlalchemy.alembic_func.upgrade_database()

1.0.23, 2018-07-23

  • separation of version string for setup.py

1.0.24, 2018-09-11 to 2018-09-14

1.0.25, 2018-09-16

1.0.26, 2018-09-21

1.0.26, 2018-09-22

1.0.27 to 1.0.29, 2018-09-23 to 2018-09-28

1.0.30, 2018-10-10

1.0.32, 2018-10-16

1.0.33, 2018-11-02

1.0.34, 2018-11-06

1.0.35 to 1.0.36, 2018-11-06

1.0.37, 2018-11-10

1.0.38, 2018-11-26

1.0.39, 2018-12-02

1.0.40, 2018-12-11

1.0.41, 2018-12-17 to 2018-12-30

2019

1.0.42 to 1.0.45, 2019-01-04

  • Minor fix: __init__.py missing from cardinal_pythonlib.email; required for Python 3.5.

  • Some bugfixes to cardinal_pythonlib.email.sendmail for e-mail servers not supporting login (!).

1.0.46, 2019-01-19

1.0.47, 2019-02-09

1.0.48 to 1.0.49, 2019-03-24

1.0.50, 2019-04-05

1.0.51, 2019-04-23

1.0.52, 2019-04-23

1.0.53, 2019-04-27

1.0.54, 2019-06-14

1.0.55, 2019-06-15

1.0.56 (buggy), 1.0.57, 2019-06-18

  • Build function updates. Avoid 1.0.56, it has a stupid bug confusing tar/git.

1.0.58 (2019-06-29)

1.0.59 (2019-07-02)

1.0.60 (2019-08-06)

1.0.61 (2019-08-19)

1.0.62 (2019-08-31)

1.0.63 (2019-09-01)

1.0.64 (2019-09-29)

1.0.65 (2019-09-30)

1.0.66 to 1.0.71 (2019-10-06 to 2019-10-07)

1.0.72 to 1.0.73 (to 2019-10-10)

1.0.74 (2019-10-24)

1.0.75 to 1.0.77 (2019-10-25 to 2019-10-26)

1.0.78 to 1.0.81 (2019-11-17)

1.0.82 (2019-11-20)

1.0.83 (2019-12-03)

2020

1.0.84 (2020-01-11 to 2020-01-19)

  • Create cardinal_pythonlib.__version__

  • Copyright years to 2020.

  • cardinalpythonlib_convert_mdb_to_mysql tool.

1.0.85 (2020-02-03)

1.0.86 (2020-04-20)

1.0.87 (2020-04-24)

1.0.88 (2020-04-24)

1.0.89 (2020-06-16, MB)

1.0.90 (2020-06-20)

1.0.91 (2020-06-28)

1.0.92 (2020-06-28)

  • Made several other large dependencies optional.

1.0.93 (2020-07-12)

1.0.94 (2020-07-21)

1.0.95 (2020-09-21)

1.0.96 (2020-09-28)

1.0.97 (2020-10-04)

1.0.98 (to 2020-11-02)

1.0.99 (2020-11-14)

1.1.0 (2020-12-01)

2021

1.1.1 to 1.1.2 (2021-02-21)

1.1.3 (2021-02-22 to 2021-03-15)

1.1.4 (2021-04-11)

1.1.5 (2021-04-23 to 2021-05-22)

1.1.6 (2021-05-22)

  • Bump Pendulum to 2.1.1 or higher because earlier versions have a sort-of bug relating to durations: https://github.com/sdispater/pendulum/pull/482. I am not entirely convinced Pendulum has done this the right way. However, we can detect its behaviour and do sensible things with ISO duration conversions. Corresponding changes to datetimefunc.py, plus better self-tests.

  • Note, in general, the use of export PYTHONDEVMODE=1 to ensure no additional DeprecationWarning messages come up.

1.1.7 (2021-05-24)

  • Minor spreadsheet tweaks.

1.1.8 (2021-10-04)

1.1.9 (2021-10-04)

1.1.10 (2021-10-05)

1.1.11 (2021-10-11 to 2021-10-13)

  • Simple bulk e-mail tool, cardinalpythonlib_bulk_email.

  • cardinal_pythonlib.rpm

  • numpy to 1.20.0, mandating Python 3.7+

1.1.12 (2021-10-18 to 2021-11-03)

1.1.13 (2021-11-09 to 2021-11-17)

1.1.14 (2021-11-17 to 2021-11-18)

  • Extra MIME type constants.

  • HTTP response objects for JSON.

1.1.15 (2021-11-21)

1.1.16 (2021-12-08)

2022

1.1.17 (2022-02-26)

1.1.18 (2022-03-02)

1.1.19 (2022-04-27 to 2022-06-02)

1.1.20 (2022-06-02)

  • No code change, but after uploading successfully with twine upload dist/FILE.tar.gz, automatic or manual downloads failed with “SignatureDoesNotMatch” / “The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.” Upgraded from twine==3.2.0 to twine==4.0.1 (with requests==2.27.1). No joy. But I think the problem is the site refusing downloads, not uploads. Try to download all from https://pypi.org/simple/cardinal-pythonlib/; works to v1.1.18, then stops working. However, it’s also the same error message for garbage filename in the URL. Could it be this error? https://github.com/stevearc/pypicloud/issues/120

1.1.21 (2022-06-05)

1.1.22 (2022-08-10)

  • Fast RPM functions, using numba, specialized for the two-choice situation.

1.1.23 (2022-08-16)

2023

1.1.24 (2023-02-15)

  • In cardinal_pythonlib.pdf.make_pdf_from_html(), take a copy of wkhtmltopdf_options; this prevents a bug where calls using e.g. a temporary file as footer HTML then make the next call, with no footer, fail (because the footer filename was written back to the dict).

  • pdf.py updated to use pypdf instead of PyPDF2, which is no longer supported.

1.1.25 (2023-10-17)

  • Use rich_argparse for colourful help.

  • Small tweaks (and a rather specific R script generator) re psychotropic medications.

  • Removed defunct rnc_db module.

  • Removed Python 3.7 support (end of life); added Python 3.10 support.

  • Supported SQLAlchemy version now 1.4

1.1.26 (in progress)

  • Fix AttributeError: 'Engine' object has no attribute 'schema_for_object' when adding a full text index to an anonymised SQL Server database table. This bug has been present since the SQLAlchemy 1.4 upgrade in 1.1.25.