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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_collection-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 069f0b44c2c6c1422286fcedb2f137d9533fce2c9efce937e85d0fd3ddb0d3d0 |
|
MD5 | acb1257de8f7d3c06c6726fd9509565f |
|
BLAKE2b-256 | 93638cbdb2bbbe9445c2dfd05f6e0abb62efb2af4d4934ca6423fd18ba220897 |