A relatively simple multilayered database built on top of standard file systems.
Project description
filesystem-database
This database is easy to set up: Just make an empty folder and initialize a dbNode
object in it! The database structure consists of dbNode
objects. dbNode
s contain more dbNode
s and keys, which store a byte value.
Usage
To initalize a database:
import filesystem_database as fs_db
rootNode = fs_db.dbNode('/path/to/database/directory')
The directory passed to dbNode()
must either be empty or contain only data from a dbNode
.
To use keys:
rootNode.mkKey(0, 'exampleKey') # Create a key with ID 0 and name `exampleKey`
rootNode.set(0, b'test data :D') # Set a value to key 0
rootNode.get(0) # Get the value of key 0 (returns `b'test data :D'` in this case)
rootNode.keys # A list containing key IDs
rootNode.keyNames # A dictionary containing key names and the key IDs they correspond to
Here 0
is the ID to give the key and 'exampleNode'
is the optional name to assign to the key. Neither the ID nor the name may be used for multiple keys. get
and set
will accept either an integer for a key ID or a string for a key name.
To use nodes:
subNode = rootNode.mkNode(0, 'exampleNode') # Create a node (ID 0, name 'exampleNode') under `rootNode`
rootNode.node(0) # Get node 0 from `rootNode`
rootNode.nodes # A list containing node IDs
rootNode.nodeNames # A dictionary containing node names and the node IDs they correspond to
subNode
is a dbNode
object whose contents are within rootNode
. Here 0
is the ID to give the node (must not be taken) and 'exampleNode'
is the optional name to assign to the node. Neither the ID nor the name may be used for multiple nodes. get
and set
will accept either an integer for a key ID or a string for a key name.
Command Line Utility
There is an included command line utility for easier management of databases. To run it, enter the following in a Python terminal:
>>> from filesystem_database import cli
>>> cli()
Commands
load
unload
mk-key
rm-key
keys
get
set
mk-node
rm-node
nodes
node
drop-node
quit
Most of these are identical to the methods of a dbNode
, except for a few. load
and unload
will load a dbNode
from the supplied path. node
'enters' a node within the current node, setting it in the promp string. drop-node
drops the current node and moves to its parent node. quit
exits the CLI interface.
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
Built Distribution
Hashes for filesystem-database-1.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 694d6521ea732ec47001c4ac5537fa77cf94561a7bf254020d35117719817197 |
|
MD5 | 6580c08a808fef4f3b7420581a0e22ef |
|
BLAKE2b-256 | 605a4ffcdb62e74b41b2ef38c95d199f6c5ec5e204c3b33015048239e817d4ae |
Hashes for filesystem_database-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e728f92ba5acfa230f74cf2bf4885d1a312fc7fdc90ef086791911176bbfb13 |
|
MD5 | fea8f395a7e5b774b81ad886e8923f8f |
|
BLAKE2b-256 | 1d90e5c237e61cc16f69f52e55b8a5a5a51852802a71657cd7581478b7bae836 |