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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc07fa3661b37e3f705b8777de6aeb5490e29a7b1eb7be5ec7eb8f461e232fc |
|
MD5 | 974901cd6687f5dc4fd14e1f7c29a9c2 |
|
BLAKE2b-256 | a850c441bf3946b2a3bfda0944f86528cfa52609c2e4d130f03a82bc1f897a19 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 069f0b44c2c6c1422286fcedb2f137d9533fce2c9efce937e85d0fd3ddb0d3d0 |
|
MD5 | acb1257de8f7d3c06c6726fd9509565f |
|
BLAKE2b-256 | 93638cbdb2bbbe9445c2dfd05f6e0abb62efb2af4d4934ca6423fd18ba220897 |