Skip to main content

A package that allows any instance of a class to be referenced with its ID that is provided by this package

Project description

Findbyid

What is It?

The findbyid utility is a package that can keep track of all objects that are created from a class that inherits from the findbyid.FindByIDFactory metaclass. It creates automatically a specific ID for the instance-in-question and provides classmethods to retrieve the object later by its ID.

What Should I use if For?

Let's say that we have a web server and a client. The server provides the client and interface to an object and needs to pass the client a reference to the object of which interface the client is using. Without the findbyid package, the only way would be to serialize the object and send it to the client somehow. Not only would that be not very practical in terms of the amount of network traffic, but also it would make dynamic changes to the object impossible. With the findbyid module though, we can just pass the reference ID to the client. That way the client can access the object by its ID, so that the actual data doesn't need to be carried over.

It is also handy when you have to access a certain object from two different contexts: you just pass the ID instead of the whole object to the other context.

How do I use It?

The usage of the package is simple:

import findbyid

class ExampleClass(findbyid.FindByIDFactory):
    def __init__(self, example_val):
        super().__init__()

        self.example_val = example_val

    ...

instance = ExampleClass("Foo")
print(instance.ID)
print(instance is ExampleClass.findByID(instance.ID))

>>> 98658
>>> True

The ID is random so do not be confused if your ID is different.

In-depth Look

Method signatures and such

  • def __init__(self: object, *args, **kwargs) -> None
    All subclasses need to call the instantiator for the utility to work properly.

  • def findByID(cls, ID: int) -> object:
    Returns an object with the given ID. If no object is found, a NotFoundException is raised.
    @classmethod.

  • def getInstances(cls) -> list[object]:
    Returns all objects of a class.
    @classmethod.

  • ID
    The specific tag that is assigned to every instance of a class inheriting from the findbyid.FindByIDFactory metaclass.

Features to be Added

  • A possibility to be able to serialize and save an object to disk and retrieve it using the same ways that it is done currenty with RAM.

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

findbyid-0.0.7.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

findbyid-0.0.7-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file findbyid-0.0.7.tar.gz.

File metadata

  • Download URL: findbyid-0.0.7.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for findbyid-0.0.7.tar.gz
Algorithm Hash digest
SHA256 15e61e2aa264ded72f7313c5e4d4b42569c3b7a41f8ea18fe72c4f72567db7a9
MD5 d32fa4effa4549510f9e5b9cf52271b9
BLAKE2b-256 3eb8da0c76207875b1975cc43499e649d60f55abfea8bb9470f975fe45d337e7

See more details on using hashes here.

File details

Details for the file findbyid-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: findbyid-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for findbyid-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 12e40ca1e6c55b757f63a37631c842dc04e6d431e0eb9e2a42a7ddfd684714be
MD5 b1118c8ce8eae0d4954cb5e40a4218a8
BLAKE2b-256 cc4874c39fd28bd419609587b387cb56f0524f6ce909edffb79dac6d53b38206

See more details on using hashes here.

Supported by

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