Gramex 1.76 release notes

Gramex 1.76 has Python 3.9 support, schedulers that run every second, and more tutorial videos.

Gramex is ready for Python 3.9

Gramex only worked on Python 3.7 so far. This was mainly Tornado 6, SQLAlchemy 1.4 and Pandas 1.0 had breaking changes.

Rather than break backward compatibility, Gramex has been re-written to work with the older and newer versions of all of these libraries. Specifically, it works with:

In future releases, the Gramex Conda package will migrate to Python 3.9, allowing you to use:

Schedulers run every second

Earlier, schedulers and alerts could run every minute, at most.

But it wasn’t possible to run a scheduler every second, or 90 seconds.

Now, schedulers and alerts support an every: kwarg that specifies the frequency of runs.

For example, this schedule runs every 1 minute 30 seconds:

schedule:
  run-at-specific-interval:
    function: print(time.time())
    every: 1m 30s

Tutorial videos

The Gramex Guide now has video tutorials explaining most features in several pages:

Bug fixes

Backward compatibility & security

Gramex 1.76 is backward compatible with previous releases unless the release notes say otherwise. Automated builds test this.

Every Gramex release is tested for security vulnerabilities using the following tools.

  1. Bandit tests for back-end Python vulnerabilities. See Bandit results
  2. npm-audit tests for front-end JavaScript vulnerabilities. See npm-audit results
  3. Snyk for front-end and back-end vulnerabilities. See Synk results
  4. ClamAV for anti-virus scans. See ClamAV results

Statistics

The Gramex code base has:

How to install

See the Gramex installation and upgrade instructions.

Note: Gramex 1.76 works with Python 3.7+ but has been fully tested only with Python 3.7.