New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jsthon

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsthon

Easy to use, fast, productive json database for python

  • 0.4.1
  • PyPI
  • Socket score

Maintainers
1

JsthonDb

logo

Contests

  1. How to download
  2. Requirements
  3. Example json file
  4. All methods usage examples
  5. Errors
  6. Leave your feedback

How to download

git clone https://github.com/terribleMOTHMAN/JsthonDb
cd JsthonDb
python setup.py install

Requirements

  • uuid >= 1.30
  • ujson >= 5.6.0

Example json file


{
  "tvshows": {
    "keys": [

    ],
    "data": {

    }
  },
  "films": {
    "keys": [

    ],
    "data": {

    }
  }
}

All methods usage examples

Creating empty JsthonDb

from jsthon import JsthonDb

db = JsthonDb('main.json')

We created that empty file

{

}

create_table

Example 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 last

choose_table

Example 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 it

add

Example usage (data field must be dict)

id = db.add({'name': 'Breaking Bad', 'start': 2008})
print(id)

Output

279161855443486914901758992112454064004

Also 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)

Output

1

add_many

Example 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 field

added_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_all

Example usage

all = 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_id

Example usage

element = db.take_by_id("1")
print(element)

Output

{'name': 'Mr. Robot', 'start': 2015}

take_with_function

Example usage

def func(data):
    if data['start'] > 2010:
        return True

print(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_id

Example usage

updated_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_function

Example usage

def func(data):
    if data['name'] == 'Shameless':
        return True

updated_data = db.update_with_function(func, {'name': '$hameless'})
print(updated_data)

Output

['227987855254015167042504673548582084559']

delete_by_id

Example usage

deleted_data = db.delete_by_id("227987855254015167042504673548582084559")
print(deleted_data)

Output

{'name': '$hameless', 'start': 2011}

delete_with_function

Example usage

def func(data):
    if data['start'] < 2015:
        return True


deleted_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_key

Example usage

db.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_keys

Example usage

db.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_table

Example usage

a = 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_table

Example usage

db.clear_table()

Json file

{
  "tvshows": {
    "keys": [

    ],
    "data": {

    }
  },
  "films": {
    "keys": [

    ],
    "data": {

    }
  }
}

clear_db

Example usage

db.clear_db()

Json file

{

}

Errors

UnknownKeyError

It's raised when key was unrecognised or missed

FunctionIsNotCallable

It's raised when function was given to the method is not callable or is not function

WrongIdsListWasGiven

It's raised when idswas given to the method have wrong type

IdWasNotFound

It's raised when id was not found in the table

IdIsAlreadyUsed

It's raised when id was given to the methon is not unique in the table

NotUniqueNameOfTable

It's raised when name of table that was given is not unique

WrongFileName

It's raised when wrong filename was given to a class

Leave your feedback

I need your review! It will be pleasure for me ^_^

Survey

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc