Skip to content

Instantly share code, notes, and snippets.

@rudyryk
Created November 10, 2022 02:57
Show Gist options
  • Save rudyryk/e1692e1aa09fde476033a1643d603119 to your computer and use it in GitHub Desktop.
Save rudyryk/e1692e1aa09fde476033a1643d603119 to your computer and use it in GitHub Desktop.
Simple time-prefixed UUID in Python
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES
# OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# No Rights Reserved
# http://creativecommons.org/publicdomain/zero/1.0/
#
import time
import uuid
def time_based_uuid() -> uuid.UUID:
"""
UUID with first 32 bits incremental time based.
"""
fields = (int(time.time()) // 8,)
fields += uuid.uuid4().fields[1:]
return uuid.UUID(fields=fields)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment