Skip to main content

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 updated pip 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)

  1. In order to start with boxdb you first need to have a file for table reaction with a

    variable with some parameters

  2. 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

MIT

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

boxdb-0.9.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

boxdb-0.9-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

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

Hashes for boxdb-0.9.tar.gz
Algorithm Hash digest
SHA256 6a2e5b6943dd3c4b18f7c50d270229e9204542eb3cb923fea87ed26afcb8bd31
MD5 e894d54016dd55874f8f5f0dbb49e49d
BLAKE2b-256 846b2ee03ab39fb22809e16ae6f9991d37f71fdf28b6c8bff40a8e9f127ad880

See more details on using hashes here.

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

Hashes for boxdb-0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cbfa2ed74ed16aed873b31714a7481dc4a07db419e6878c3237e2cc730a601b6
MD5 fbe39e900a6679effa36d57bd8896fc2
BLAKE2b-256 8cd92b35fca916f622278ef164db60808420ae51189eebacbaf7bb5949f7de90

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page