Make Your own personal database liter than others
Project description
BOXDB
This is a database management lib made for python, which works like any Libraries and is very lite
no additional setup is required but there is some procedure to create a project is very easy.
Installation
-
use
pip install boxdb
-
Make sure that your
pip
version is updatedpip install --upgrade pip
. -
Select the correct package for your environment:
-
Import the package:
import boxdb
Clone the project
git clone https://github.com/kshitij1235/boxdb/tree/main/dist
Install
pip install boxdb
UPDATE
-
FORBIDDEN WORDS ARE ADDED TO THE COLUMN !! , so now you can restrict some words for a column.
-
IT ALSO KEEPS TRACK OF TABLE WITH LOGS
-
auth_details() improved speed and algorithm
-
specific_auth() improved speed and algorithm
-
add_row() made more faster
-
drop_primary_key()->added
-
assign_primary_key()->added
-
get_table()->loads the table lazily now and memory efficient and faster
-
internal check primary row fixed
-
delete_row() -> added it deleted columns permenently
-
remove_row() -> added it does not delete columns permenently
-
create_column() -> added feature to create a uniques column
-
create_column() -> added feature to create a column with forbident words
-
solved bugs in create_project
-
changes made to the core modules
Libraries Used
-
Tabulate
-
filemod
Features
-
Very lite and easy to maintain.
-
custom encryption is very easy to apply.
-
faster in performance.
Things to keep in mind
- you can only access the database file when your python file and database file are in the same directory
Structure Of The Table
{table_name}
│
├── flags
│ ├── forbidden.txt
│ └── not_null.txt
│ └── primary_key.txt
│ └── unique.txt
├── Forbidden
│ ├── {forbiden_column}_f.txt
├── Logs
│ ├── error.log
│ ├── info.log
│ └── warning.log
├── tables
│ ├── {columns}.txt
├── {table_name}_data.txt
└── {table_name}_meta.txt
How to use it :)
phase 1 (Creating a TABLE)
-
In order to start with boxdb you first need to have a file for table reaction with a
variable with some parameters
-
you can use this code to start with it too
from boxdb import*
#in this variable you make sure too include the the name key aka variable as it will be your table name
# and rest you can put any number of keys values you want its upto you
#The only important key value is name
info={
'name':"plasma",
'description':"makeing heard of cows talking to each other and making things more brigth for the world to take stem"
}
# with the help of this function your table will be created
create_project(info)
#with the help of this function you can check the details of your table which you stored
details=get_detail("plasma")
print(details)
| functions | description | arguments |
| -------------- | ------------------------------------------------------------- | -------------------------------------------- |
| create_project | This function creates a basic file system to store data info | info(patten given above for variable naming) |
| get_detail | This gives you all the basic details of the table | table_name |
phase 2 (wow you learned to set up boxdb)
Now lets start with column creation and deletion with PRIMARY KEY
from boxdb import*
# At the start let's create some rows!!!!
# you can pass a string or even list to create columns according to your wish
# ill show creating 4 rows 3 with rows and 1 with string
columns=["sr no","names of cow","lites fo milk"]
# this function takes table name (in my case its "plasma") and columns you can pass list if you have many rows
# or you can use string if you wanna create one single row
# this is multiple
create_column("plasma", rows)
# this is single row
create_column("plasma", "update")
# you can make the primary key this way
# and it also shows some more features it consists
# create_column function has 3 more parameters
# not_null -> to avoid blank spaces and null values in column
# it takes bool values
# unique -> it is used to rest the repetitive words in the column
# it takes bool value
# forbiden_words -> it is used to restrict sets of words in the column
# it takes a list as a parameter with some words to restrict
create_column("plasma",
"id",
primary_key=True,
not_null=False,
unique=False,
Forbiden_words=None
)
#you can always delete a column if you want
# this function takes the table name (in my case its "plasma") and columns you can pass list if you have many rows to delete
# or you can pass a sting if you wanna delete a single row
#, in this case, am deleting a single column but you can always pass a list to
remove_column("plasma", "update")
| functions | description | arguments |
| ------------- | --------------------------------------------------- | ----------------------------------------------- |
| create_column | This function helps you create columns in you table | table_name,columns name(accepts list or string) |
| remove_column | Delete columns | table_name,column(accepts list or string) |
Lets learn about creating rows
from boxdb import*
'''
# At start lets create some rows!!!!
# you have to pass list to rows according to the columns
# for example if you have three columns ,you have to pass 3 elements each elements gets added to
# each row
# In short you can add 1 row at a time but a fix for that will be release soon too '
'''
rows=["1","amanda","28","er"]
'''
# this function takes table name (in my case its "plasma") and rows you have to pass list
# that you created earlier according to row size
'''
# this is multiple
add_row("plasma", rows)
add_row("plasma",["2","ana","28","3e"])
add_row("plasma",["3","kyee","28","5e"])
#you can always delete a row if you want
# this functions takes table name (in my case its "plasma")
# rules
# 1)it needs a primary key
# it takes the column name to change and element to change
remove_row("plasma","id","3e")
# this fucntion takes table name (in my case its "plasma")
# and the number of row
# in this case am delelting a single columns which is row number 1
remove_column_number("plasma", 1)
#you can always update a row if you want
# it takes table name
# and a value from primary key that should exist in same row
# it takes column number and what to update in
update_row("plasma","5e","update","22")
| functions | description | arguments |
| -------------------- | --------------------------------------------------- | ----------------------------------------- |
| add_row | This function helps you create columns in you table | table_name,column_data(list) |
| remove_column_number | Delete row by index | table_name,remove_row_number |
| remove_row | row that can be recovered | table_name,column,row_element |
| delete_row | remove row permently | |
| update_row | update values in row | table_name,primary_value, column, element |
Showing table
from boxdb import*
# Displaying table is a kids job, its very easy
# this function helps you to show table
# this function takes a single argument which is table name(in my case its "plasma")
##i understand few freatures should be added to improve the use of show table functions
# and yes it would be release soon
get_table("plasma")
'''
now there is another method to do it with selective rows
'''
list_of_rows=["sr_no","number_of_cows"]
get_table("plasma",list_of_rows)
| functions | description | arguments |
| --------- | ------------------------------------------ | ---------- |
| get_table | This function helps to visualize the table | table_name |
License
Feedback
If you have any feedback, please reach out to us at email kshitijjathar7@gmail.com
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
File details
Details for the file boxdb-0.9.tar.gz
.
File metadata
- Download URL: boxdb-0.9.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a2e5b6943dd3c4b18f7c50d270229e9204542eb3cb923fea87ed26afcb8bd31 |
|
MD5 | e894d54016dd55874f8f5f0dbb49e49d |
|
BLAKE2b-256 | 846b2ee03ab39fb22809e16ae6f9991d37f71fdf28b6c8bff40a8e9f127ad880 |
File details
Details for the file boxdb-0.9-py3-none-any.whl
.
File metadata
- Download URL: boxdb-0.9-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbfa2ed74ed16aed873b31714a7481dc4a07db419e6878c3237e2cc730a601b6 |
|
MD5 | fbe39e900a6679effa36d57bd8896fc2 |
|
BLAKE2b-256 | 8cd92b35fca916f622278ef164db60808420ae51189eebacbaf7bb5949f7de90 |