Skip to main content

Get a globally unique serial

Project description

Klingon Serial Python Module

klingon-serial unit tests Pre-PR Merge CI .github/workflows/post-pr-merge.yaml

Overview

The klingon_serial Python module is designed to generate a unique hexadecimal serial number, avoiding serial conflicts in a distributed environment. The serial number is a concatenation of the machine's MAC address, the process ID (PID), and the current time in epoch format with millisecond precision. The module aims to offer a robust method for generating serials that are virtually collision-free.

Installation

To install the module, you can use pip:

pip install klingon-serial

Serial Components

  1. MAC Address: A unique identifier assigned to network interfaces for communications. 12 characters in hexadecimal.
  2. Process ID (PID): Unique ID for each running process. Up to 6 characters in hexadecimal.
  3. Timestamp: Millisecond-precision epoch time. Up to 10 characters in hexadecimal.

These components are concatenated to form a unique serial number.

Usage

Here is how you can use the klingon_serial module:

import klingon_serial

# Generate a unique serial number
unique_serial = klingon_serial.generate()
print(f"Generated Serial: {unique_serial}")

Serial Number Structure

The generated serial number has the following structure:

[ 12 characters MAC ][ Up to 6 characters PID ][ 10 characters Timestamp ]

Example

An example serial number might look like this:

02C3F642A1EC3A4B9B0985F53E

Testing

To run the test suite, you can use:

python -m unittest discover -s tests

Contributing

Feel free to fork this repository and submit pull requests for improvements or additional features.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

klingon-serial-0.1.15.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

klingon_serial-0.1.15-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file klingon-serial-0.1.15.tar.gz.

File metadata

  • Download URL: klingon-serial-0.1.15.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for klingon-serial-0.1.15.tar.gz
Algorithm Hash digest
SHA256 e622f6440125933644c24393fac6de1c64a01881e95e737d68d031cfa5a14331
MD5 1e0dcdbaccc111369e56e2e2495a2e84
BLAKE2b-256 fc217f45911a13b68f9b154a7b3a7c378f5d3f04910d749442e164d927296cc6

See more details on using hashes here.

File details

Details for the file klingon_serial-0.1.15-py3-none-any.whl.

File metadata

File hashes

Hashes for klingon_serial-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 7b3d4f3ffeecbaf25dffd08d05d9c17b1f8c5f5cf2dc29b8e770cc5e34fbc4a2
MD5 a086ebd9f7102b2b327a8d3c1221feff
BLAKE2b-256 689095a7882907157e45a5a2818e1fac6c70f8588b2753205de02cd6541e68df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page