Snakeflake
Snakeflake is a discrete nonserial ID generator like Snowflake and Sonyflake, implemented in Python.
"Discrete" and "nonserial" are real words. I promise.
Usage
>>> import datetime
>>> from snakeflake.snakeflake import SnakeflakeGenerator
>>> from snakeflake.config import SnakeflakeGeneratorConfig
>>>
>>> # Set the epoch to 5:30, 28 March 2010 and the machine ID to 283
>>> config = SnakeflakeGeneratorConfig(datetime.datetime(2010, 3, 28, 5, 30), 283)
>>> # Create the Snakeflake Generator
>>> sf = SnakeflakeGenerator(config)
>>> # Generate some Snakeflake IDs
>>> sf.next_id()
526063632593715483
>>> sf.next_id()
526063667423281435
>>> # Not specifying a Machine ID will generate one from your internal IP address
>>> config = SnakeflakeGeneratorConfig(datetime.datetime(2010, 3, 28, 5, 30), None)
>>> config.machine_id
1
Installation
You can install Snakeflake using pip:
pip install snakeflake
Documentation
View the documentation here.
To do:
- Better Documentation
- Add tests(!!!)
- Add a snakeflake decoder
- Publish (🎉🎉🎉)
-
Add an icon - Add a better icon
- Accept a function as a parameter to get the current machine id
- Accept a function as a parameter to check the uniqueness of the machine id
- Async support (if I decide to do the above)
Contributing
Want to contribute to this project? Feel free to submit a PR!
License
This project is licensed under the Apache 2.0 license.
Release files for snakeflake 0.1.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| snakeflake-0.1.5.2-py3.7.egg | Legacy Egg format | - | - | Details |
| snakeflake-0.1.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / snakeflake-0.1.5.2-py3.7.egg
| Download URL | snakeflake-0.1.5.2-py3.7.egg |
|---|---|
| Size | 12.8 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
b50de9150090384860f62e403b2a1033faeb2ae6713eaeb377a5dba33195b844
|
|
BLAKE2b-256 checksum How to use checksums |
b4035bf5d148561a5db7a72eda8e03ac7e01c7a59405f11783e3c2729d02bf40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3
|
Release files / snakeflake-0.1.5.2-py3-none-any.whl
| Download URL | snakeflake-0.1.5.2-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
223cd399694b974dfd11de65328015b94cca06366e947b6caf72f80237fa9b0b
|
|
BLAKE2b-256 checksum How to use checksums |
4114e9782fcf346d07a1eb9c6cde4cfefe9c4af03454643032869b6e68baa6c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3
|