python-snowflake-2

Based on falcondai and fenhl’s Python snowflake tool, but with documentation and simliarities to Discord.

Docs

make_snowflake

This is a function to generate a snowflake.

This function does not return an integer snowflake – it returns a string.

Paramters are listed below.

Here’s an example if you want to look at it after reading the below docs:

make_snowflake(time.time(), 0, 0, 0)

timestamp_ms

This is an epoch time paramter. You can get one by running time.time().

Basically, an oversimplified description of the way a snowflake works is by looking at a “twepoch”, then subtracting a normal epoch from it (but there are other factors in it, as detailed in the rest of this documentation). That is why you need a timestamp_ms.

Note that the default twepoch is 1639853814 here, but Twitter’s is 1288834974657

Discord has some information on this as well. image

worker_id

This can be used internally to keep track of the worker for each snowflake, inspired by Discord’s snowflake system.

process_id

This can be used internally to keep track of the process for each snowflake, inspired by Discord’s snowflake system.

Discord’s documentation shown in worker_id also applies here.

increment_id

This can be used to keep track of 12-bit increments for every generated ID on the aforementioned process.

snowflakeToTime

Converts a snowflake to a Python datetime.

Takes a snowflake ID argument only and converts it to a datetime.

Example:

snowflakeToTime(make_snowflake(time.time(), 0, 0, 0))

GitHub

View Github