Skip to main content

ID attributes for python objects

Project description

PyID

Python 3.7

Turn any python object into an exactly equivalent object with an id attribute.

Example

import random
import pyid


mylist = [random.sample(range(10), k=3) for i in range(20)]


# Uses python uuid module to assign ID by default
mylist = [pyid.idfy(item) for item in mylist]
for item in mylist:
    print(item, item.id)


# Assign a custom ID
mylist = [pyid.idfy(item, 'myid') for item in mylist]
for item in mylist:
    print(item, item.id)

Installation

pip install pyid

Motivation

When referencing related objects, we use unique IDs. In python, we might handle this pattern with a dictionary mapping IDs to objects, or use an item's position in a list as its ID. Either case requires we create variables separate from the object to represent those IDs, and that each time we iterate we explicitly include the ID by iterating with the ID dict or the enumerate function for lists. I built this to test the idea that having an ID attribute is easier and cleaner.

How it works

It takes the type of the passed object, creates a subclass of that type, with an ID attribute, and copies the data from the passed object into an instance that new subclass. If a custom ID is not passed, the python uuid module is used to assign one.

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

pyid-0.0.3.tar.gz (2.0 kB view details)

Uploaded Source

Built Distribution

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

pyid-0.0.3-py3-none-any.whl (2.3 kB view details)

Uploaded Python 3

File details

Details for the file pyid-0.0.3.tar.gz.

File metadata

  • Download URL: pyid-0.0.3.tar.gz
  • Upload date:
  • Size: 2.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for pyid-0.0.3.tar.gz
Algorithm Hash digest
SHA256 91846651d747a8759cea474bc21764a318a4743a6fec32807a6d510f7cbd7cd5
MD5 e2df7b0a5d2b8493f4a9a99a0c2cc66f
BLAKE2b-256 f56bb44d784600a75ff916bad5af7c528673135b0e02af1e4b71a83ee5a67438

See more details on using hashes here.

File details

Details for the file pyid-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pyid-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 2.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for pyid-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 77a233f363ff81ae80ba113396b6c28dca1fb8cd2ccabcb87b1e052575a10e41
MD5 120c57bf5ea16671fd8524bc645188d4
BLAKE2b-256 310dab8f774b0570d0b07361e50c89e04589bce20661b8ac9680decbe68a3545

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