datasette-render-timestamps by simonw

97 downloads this week        Star

README source code

datasette-render-timestamps

PyPI CircleCI License

Datasette plugin for rendering timestamps.

Installation

Install this plugin in the same environment as Datasette to enable this new functionality:

pip install datasette-render-timestamps

The plugin will then look out for integer numbers that are likely to be timestamps - anything that would be a number of seconds from 5 years ago to 5 years in the future.

These will then be rendered in a more readable format.

Configuration

You can disable automatic column detection in favour of explicitly listing the columns that you would like to render using plugin configuration in a metadata.json file.

Add a "datasette-render-timestamps" configuration block and use a "columns" key to list the columns you would like to treat as timestamp values:

{
    "plugins": {
        "datasette-render-timestamps": {
            "columns": ["created", "updated"]
        }
    }
}

This will cause any created or updated columns in any table to be treated as timestamps and rendered.

Save this to metadata.json and run datasette with the --metadata flag to load this configuration:

datasette serve mydata.db --metadata metadata.json

To disable automatic timestamp detection entirely, you can use "columnns": [].

This configuration block can be used at the top level, or it can be applied just to specific databases or tables. Here's how to apply it to just the entries table in the news.db database:

{
    "databases": {
        "news": {
            "tables": {
                "entries": {
                    "plugins": {
                        "datasette-render-timestamps": {
                            "columns": ["created", "updated"]
                        }
                    }
                }
            }
        }
    }
}

And here's how to apply it to every created column in every table in the news.db database:

{
    "databases": {
        "news": {
            "plugins": {
                "datasette-render-timestamps": {
                    "columns": ["created", "updated"]
                }
            }
        }
    }
}

Customizing the date format

The default format is %B %d, %Y - %H:%M:%S UTC which renders for example: October 10, 2019 - 07:18:29 UTC. If you want another format, the date format can be customized using plugin configuration. Any format string supported by strftime may be used. For example:

{
    "plugins": {
        "datasette-render-timestamps": {
            "format": "%Y-%m-%d-%H:%M:%S"
        }
    }
}