A fun and easy way to store python objects.
Project description
Object Bucket
An easy and fun way to store python objects.
Table of contents
Description
Object Bucket is a python package that allows you to store python objects permanently in a more user friendly way.
Installation
The object-bucket package can be installed by using pip.
pip install object-bucket
Usage
- Creating new bucket.
from object_bucket import Bucket
test_bucket = Bucket("name-of-the-bucket")
- Adding droplets to the bucket, droplets are considered as objects that you want to save permanently.
test_obj = [1, 2, 3, 4]
test_bucket.add_droplet("droplet-name", test_obj)
Trying to add a droplet with the same name will cause an error.
- Adding multiple droplets.
To add multiple droplets you have to have a dictionary that contains all the names and objects of the droplet.
To add the dictionary you can use the
add_droplets
method.
droplets = {
"one": 1,
"two": 2,
"three": [2, 3, 4]
}
test_bucket.add_droplets(droplets)
- Modifying a droplet
new_obj = {1: "a"}
test_bucket.modify_droplet("droplet-name", new_obj)
Trying to modify a droplet that does not exists will cause an error.
- Saving a bucket All the things mentioned above will not be added or saved permanently, to do so it is necessary to save the bucket.
test_bucket.save_bucket()
- Retrieving values from a bucket.
from object_bucket import Bucket
test_bucket = Bucket("name-of-the-bucket")
a = test.bucker.get_droplet("droplet-name")
print(a) # {1: "a"}
Trying to get a droplet that does not exists will cause an error.
- Get all the runtime droplets
drop1 = [1, 2, 3, 4]
drop2 = "Hello"
drop3 = {1: "a", 2: "b"}
test_bucket.add_droplet("drop1", drop1)
test_bucket.add_droplet("drop2", drop2)
test_bucket.add_droplet("drop3", drop3)
# to get all the droplets
a = test_bucket.get_all_droplets()
print(a)
# output
{"drop1": [1, 2, 3, 4], "drop2": "Hello", "drop3": {1: "a", 2: "b"}}
- Deleting a bucket To delete the bucket and to clear the runtime storage of all the droplets.
test_bucket.delete_bucket()
- You can also delete a bucket using
remove_bucket
function
from object_bucket import remove_bucket
remove_bucket("name-of_bucket_to_be_removed", bucket_file_path="file-path-of-the-bucket")
Using the context manager.
It might be a hastle to remember to save to bucket, so you can use the context manager to avoid using the save_bucket
method.
Note: Using Bucket().delete_bucket
inside the context manager is useless as at the end the file will be saved automatically.
from object_bucket import Bucket
with Bucket("name-of-the-bucket") as b:
# code to execute
b.add_droplet("name", 1)
# ...etc
b.delete_bucket() # wont work as the file will be again saved,
# but the runtime contents will be cleared
Some more stuff
- You can use the if statement to check whether a bucket is empty or not
from object_bucket import Bucket
t = Bucket("name")
if t:
print("Hello") # -> does not print anything as bucket is empty
t.add_droplet("demo", 1)
if t:
print("Hello 2") # -> prints "hello 2" as the bucket has at least one droplet
- To get the number of droplets in a bucket you can use the
len
method
from object_bucket import Bucket
t = Bucket("name")
print(len(t)) # -> 0
t.add_droplet("demo", [1, 2, 3])
print(len(t)) # -> 1
-
Change the folder in which the bucket are stored.
By default all the bucket are stored in:
Unix: ~/.local/share/Object-Bucket # or in $XDG_DATA_HOME,
Win 7: C:\Users\username\AppData\Local\Object-Bucket\buckets
To change it, you can pass a keyword argument called
bucket_folder
, to theBucket
classfrom object_bucket import Bucket b = Bucket("test", bucket_folder="folder-path") ...
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 object_bucket-1.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4b91e37f234dd3dfa4fc3b0bb02107f65974336c901d4ff2c02e2f8064e65e8 |
|
MD5 | 2bb7c36853239fd8d8277195ea424b1d |
|
BLAKE2b-256 | 7a68bf538fdbb7d912a072a510c08a84f2b3fe080166ef613c22d3fafd9e523e |