Gramex 1.61 release notes

Gramex 1.61 brings the ability to create interactive PPTs, a distributed cache, and a few minor enhancements and bug fixes.

Create interactive presentations

With this release, SlideSense, a.k.a. PPTXHandler v2 also supports transitions and links. So you can use Gramex to directly create bar chart races, like below, and more.

PPTXHandler bar chart race: animated GIF

Read the documentation to learn how to:

Fast, persistent, distributed cache

Gramex uses caches to speed up requests. The new Redis Cache store lets multiple Gramex instances (even on different servers) use the same cache. So when a user requests a page on one server, it will be served fast on all other servers.

This is an advantage over the two existing caches:

  1. The memory cache, which is fast but ephemeral and single-server
  2. The disk cache, which is persistent but slow and single-server

The Redis cache uses Redis as a back-end. It is fast, persistent and distributed.

cache:
  distributed-cache: # Define a name for the cache
    type: redis # This is a redis cache
    path: localhost:6379:0 # Connection string for Redis instance
    size: 1000000000 # Allow ~1GB of data in the cache

Thanks Niyas!

Improved gramex init

gramex init provides a better default login URL now. Earlier, the login link may take you to a different app, post-login (particularly when you deploy multiple apps on a single server). This is fixed in 1.61. Your app will redirect to your own app’s login page, not the default /login/ of the server.

Some Gramex instances raised a UnicodeError when running Gramex. This is also resolved.

Use Python expressions in YAML

Handlers like FunctionHandler or FormHandler only allowed Python functions in YAML, like function: mymodule.my_method() or modify: data.sort_values().

Now, you can also use expressions. For example, function: 1 + 2 or modify: data.T.

Bug fixes

What next

The August 2020 release (1.62) will

How to install

To install Gramex, run:

pip install --upgrade gramex
pip install --upgrade gramexenterprise    # If you use DBAuth, LDAPAuth, etc.
gramex setup --all

Statistics

The Gramex code base has: