Package: jsthon
JsthonDbContestsHow to downloadRequirementsExample json fileAll methods usage examplesCreating empty JsthonDbcreate_tablechoose_tableaddadd_manytake_alltake_by_idtake_with_functionupdate_by_idupdate_with_functiondelete_by_iddelete_with_functionadd_new_keyadd_new_keysshow_tableclear_tableclear_dbErrorsUnknownKeyErrorFunctionIsNotCallableWrongIdsListWasGivenIdWasNotFoundIdIsAlreadyUsedNotUniqueNameOfTableWrongFileNameLeave your feedbackHow to downloadgit clone https://github.com/terribleMOTHMAN/JsthonDb
cd JsthonDb
python setup.py installRequirementsuuid>= 1.30ujson>= 5.6.0Example json file{"tvshows":{"keys":[],"data":{}},"films":{"keys":[],"data":{}}}All methods usage examplesCreating empty JsthonDbfromjsthonimportJsthonDbdb=JsthonDb('main.json')We created that empty file{}create_tableExample usage (name field must be str)db.create_table('tvshows')db.create_table('films'){"tvshows":{"keys":[],"data":{}},"films":{"keys":[],"data":{}}}You need to know that after using this method table that will be changed by the default methods will be films. Because it was created lastchoose_tableExample usage (table field must be str)db.choose_table('tvshows')All the methods we will use will change the table 'tvshows' because we have chosen itaddExample usage (data field must be dict)id=db.add({'name':'Breaking Bad','start':2008})print(id)Output279161855443486914901758992112454064004Also we can use our own id without generating it (id field must be string)id=db.add({'name':'Mr. Robot','start':2015},"1")print(id)Output1add_manyExample usage (data field  must be list with elements that are dictionaries)added_values=db.add_many([{'name':'Shameless','start':2011},{'name':'The Boys','start':2019}])print(added_values)Output{'227987855254015167042504673548582084559':{'name':'Shameless','start':2011},'334561175396969661937858438600623257934':{'name':'The Boys','start':2019}}Also we can use our own ids without generating it (id field must be tuple with ids that are strings). Also, each id must correspond to a value in the data fieldadded_values=db.add_many([{'name':'Scrubs','start':2001},{'name':'How I Met Your Mother','start':2005}],("0","2"))print(added_values)Output{'0':{'name':'Scrubs','start':2001},'2':{'name':'How I Met Your Mother','start':2005}}take_allExample usageall=db.take_all()print(all)Output{'279161855443486914901758992112454064004':{'name':'Breaking Bad','start':2008},'1':{'name':'Mr. Robot','start':2015},'227987855254015167042504673548582084559':{'name':'Shameless','start':2011},'334561175396969661937858438600623257934':{'name':'The Boys','start':2019},'0':{'name':'Scrubs','start':2001},'2':{'name':'How I Met Your Mother','start':2005}}take_by_idExample usageelement=db.take_by_id("1")print(element)Output{'name':'Mr. Robot','start':2015}take_with_functionExample usagedeffunc(data):ifdata['start']>2010:returnTrueprint(db.take_with_function(func))Output{'1':{'name':'Mr. Robot','start':2015},'227987855254015167042504673548582084559':{'name':'Shameless','start':2011},'334561175396969661937858438600623257934':{'name':'The Boys','start':2019}}update_by_idExample usageupdated_data=db.update_by_id("1",{'name':'Better Call Saul'})print(updated_data)print(db.take_by_id("1"))Output{'name':'Better Call Saul','start':2015}{'name':'Better Call Saul','start':2015}update_with_functionExample usagedeffunc(data):ifdata['name']=='Shameless':returnTrueupdated_data=db.update_with_function(func,{'name':'$hameless'})print(updated_data)Output['227987855254015167042504673548582084559']delete_by_idExample usagedeleted_data=db.delete_by_id("227987855254015167042504673548582084559")print(deleted_data)Output{'name':'$hameless','start':2011}delete_with_functionExample usagedeffunc(data):ifdata['start']<2015:returnTruedeleted_data=db.delete_with_function(func)print(deleted_data)Output[{'name':'Scrubs','start':2001},{'name':'How I Met Your Mother','start':2005},{'name':'Breaking Bad','start':2008}]add_new_keyExample usagedb.add_new_key('broadcast',True)print(db.take_all())Output{'1':{'name':'Better Call Saul','start':2015,'broadcast':True},'334561175396969661937858438600623257934':{'name':'The Boys','start':2019,'broadcast':True}}add_new_keysExample usagedb.add_new_keys(['ratings','language'],['good','english'])print(db.take_all())Output{'1':{'name':'Better Call Saul','start':2015,'broadcast':True,'ratings':'good','language':'english'},'334561175396969661937858438600623257934':{'name':'The Boys','start':2019,'broadcast':True,'ratings':'good','language':'english'}}show_tableExample usagea=db.show_table()print(a)Output[['name','start','broadcast','ratings','language'],['Better Call Saul',2015,True,'good','english'],['The Boys',2019,True,'good','english']]clear_tableExample usagedb.clear_table()Json file{"tvshows":{"keys":[],"data":{}},"films":{"keys":[],"data":{}}}clear_dbExample usagedb.clear_db()Json file{}ErrorsUnknownKeyErrorIt's raised when key was unrecognised or missedFunctionIsNotCallableIt's raised when function was given to the method is not callable or is not functionWrongIdsListWasGivenIt's raised when idswas  given to the method have wrong typeIdWasNotFoundIt's raised when id was not found in the tableIdIsAlreadyUsedIt's raised when id was given to the methon is not unique in the tableNotUniqueNameOfTableIt's raised when name of table that was given is not uniqueWrongFileNameIt's raised when wrong filename was given to a classLeave your feedbackI need your review! It will be pleasure for me ^_^Survey