Skip to main content

A simple utility structure for python

Project description

Collection

A utility data structure for python! This enpowers the power of dicts to the next level!
This module is inspired from discordjs collections

Links

Usage

from Collection import Collection

mycol = Collection()

mycol.set('key', 'value')
print(mycol.get('key')) # Prints 'value'!

Properties

col.dict # The data stored in dict
col.size # The size of the dict len(self.dict)
col.keys # Returns the array of keys of dict
col.values # Returns the array of values of dict
col.items # Returns the items of values of dict [(key, value), ...]

Basic methods

col.set(key, value) # Sets a value to the dict
col.get(key) # Returns the value of the key, if no value then returns None
col.clear() # Similar to dict.clear()
col.has(key) # Returns a boolean wheater the key has its value!

Utility methods

col.first() # Returns the first value of the dict
col.first(2) # Returns the array of values of the dict from first to second
col.last() # Returns the last value of the dict 
col.last(2) # Returns the array of values of the dict from last to second last
col.random() # Returns a random value of the dict
col.random(2) # Returns a array of 2 random values of dict 

# Similar to the above functions there are methods to get the keys of it

col.firstkey() # Returns the first key of the dict
col.firstkey(2) # Returns the array of keys of the dict from first to second
col.lastkey() # Returns the last key of the dict 
col.lastkey(2) # Returns the array of keys of the dict from last to second last
col.randomkey() # Returns a random key of the dict
col.randomkey(2) # Returns a array of 2 random keys of dict 

Extending a Collection

Extend the collection

col1 = Collection()
col2 = Collection()

col1.set('key', 'value')
col2.extend(col1)

print(col2.get('key')) # Will return value

Will work with dicts too

col = Collection()

col.extend({ 'key': 'value' })

print(col.get('key')) # Will return value

Cloning

Will return a duplicate collection of the current collection

print(col.clone())

To a object

Convert the collection dict to object

col = Collection()

col.set('key', 'value')
obj = col.to_object()

print(obj.key) # Returns value

List methods

Find

Find an item in the items of dict

def find(key, value):
    return key == 'key'

print(col.find(find)) # Returns an item (key, value)

Some

Verifies if the callback satisfies any of the items in the dict

def some(key, value):
    return key == 'key'

print(col.some(some)) # Returns boolean stating the existence of the key which satisfies the callback

Find

Find an item in the items of dict

def find(key, value):
    return key == 'key'

print(col.find(find)) # Returns an item (key, value)

FindMany

Find array of items which satisfies the callback

def findmany(key, value):
    return key == 'key'

print(col.findmany(findmany)) # Returns an array of items (key, value)

Sweep

Removes the item of the dict which satisfies the callback

def sweep(key, value):
    return key == 'key'

print(col.sweep(sweep)) # Returns nothing

Filter

Similar to sweep but instead returns a new duplicate collection and filters it

def sweep(key, value):
    return key == 'key'

print(col.sweep(sweep)) # Returns a new collection

Sweep

Removes the item of the dict which satisfies the callback

def sweep(key, value):
    return key == 'key'

print(col.sweep(sweep)) # Returns an item (key, value)

Maps

Maps the values of the dict and returns a duplicate collection

col.set(1, 5) # Current value = { 1: 5 }

def map(key, value):
    return value + 1

print(col.map(map)) # Returns an collection
# Collection with value { 1: 6 }

ForEach

Will run the function on each item

def foreach(key, value):
    print(key)

print(col.foreach(foreach)) # Returns an item (key, value)

Concat

Will return a duplicate collection by concatting the both collection

col1 = Collection()
col2 = Collection()

col1.set('key', 'value')
print(col2.concat(col1)) # Will return value

Will work with dicts too

col = Collection()

print(col.extend({ 'key': 'value' })) # Will print value

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

python-collection-1.0.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

python_collection-1.0.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file python-collection-1.0.0.tar.gz.

File metadata

  • Download URL: python-collection-1.0.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.5.0

File hashes

Hashes for python-collection-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fdc07fa3661b37e3f705b8777de6aeb5490e29a7b1eb7be5ec7eb8f461e232fc
MD5 974901cd6687f5dc4fd14e1f7c29a9c2
BLAKE2b-256 a850c441bf3946b2a3bfda0944f86528cfa52609c2e4d130f03a82bc1f897a19

See more details on using hashes here.

File details

Details for the file python_collection-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: python_collection-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.5.0

File hashes

Hashes for python_collection-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 069f0b44c2c6c1422286fcedb2f137d9533fce2c9efce937e85d0fd3ddb0d3d0
MD5 acb1257de8f7d3c06c6726fd9509565f
BLAKE2b-256 93638cbdb2bbbe9445c2dfd05f6e0abb62efb2af4d4934ca6423fd18ba220897

See more details on using hashes here.

Supported by

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