Skip to main content

a client for replit db

Project description

This package has been deprecated, I recommend you use the offical replit db client which can be found here.

PyPI version Run on Repl.it Downloads

ReplitDB Client

A Pythonic Client for use with the repl.it DataBase. Created by Codemonkey51. Documentation by IreTheKID.

Installation

There are many different methods of installing replitdb to your enviornment. pip is recommended as it is the most stable.

  • Pip: pip install replitdb
  • Easy Install: easy_install replitdb
  • Git: $ git clone https://github.com/codemonkey51/replit-db-client replitdb
  • Replit UPM: python3 -m poetry init --no-interaction; python3 -m poetry add replitdb

Getting Started

Once you have the package installed, simply import it and define the client to get started:

import replitdb

client = replitdb.Client()

Using the Client

The replitDB client can be used to write, delete, and edit keys/values within your database. Let's say you have your dictionary ready, like so:

import replitdb

client = replitdb.Client()
data = {
	"users" : {
		"name1" : {...},
		"name2" : {...}
	},
	"posts" : {
		"post1" : {...},
		"post2" : {...}
	},
	"codes" : [
		12345,
		67890,
	],
	"sessionID" : "837379829-2"
}

You can write to the DB with either:

for key, value in data.items():
	client.set(key=value) 

or:

client.set_dict(data)

Editor's Note: Using the for loop will set 'key' equal to the variable value. Using client.set_dict({key:value}) is recommended instead.

After adding items to your DB, you may want to remove some. There are different methods to deleting values from the DB:

client.remove("codes") # Deletes the item the key "codes"
client.remove_list(["users", "posts"]) # Deletes a list of items

client.wipe # Wipes the whole DataBase clean

Client Functions

Adding:

  • client.set(name=value, name2=value2, ...) Adds an item with it's name and value.
  • client.set_dict({key:val}) Adds an item for every key/value pair in the dict.

Removing:

  • client.remove(name) Removes an item by its name.
  • client.remove_list([key]) Removes a list of items by name.
  • client.wipe Clears DB. (Caution: Cannot Be Undone)

Viewing:

  • client.view(name) Returns the value of the name (tries to detect if it is a str or ddict/list and returns accordingly).
  • client.view_multiple(name, name2, ...) Returns a dictionary with each item being the name/value pair found (tries to detect if it is a str or ddict/list and returns accordingly).
  • client.view_multiple_list([key]) Returns a dictionary with each item being the key/value pair found in the list (tries to detect if it is a str or ddict/list and returns accordingly).
  • client.all Returns all key names.
  • client.all_dict Returns the entire DB as a dictionary.

Viewing internals (async only) (recommended not to call directly)

  • client._view_str(name) Returns the value of the name as a string.
  • client._view_str_multiple(name, name2, ...) Returns a dictionary with each item being the name/value pair as a string found.
  • client._view_str_multiple_list([key]) Returns a dictionary with each item being the key/value pair found as a string in the list.
  • client._view_json(name) Returns the value of the name json decoded.
  • client._view_json_multiple(name, name2, ...) Returns a dictionary with each item being the name/value pair json decoded found json decoded.
  • client._view_json_multiple_list([key]) Returns a dictionary with each item being the key/value pair json decoded found in the list.

Searching:

  • client.list(prefix) Returns lists of all keys found that start with the prefix.
  • client.list_multiple(prefix, prefix2, ...) Returns dict with each item being the prefix/key pair for all keys found that start each prefix.
  • client.list_multiple_list([prefix]) Returns dict with each item being the prefix/key pair for all keys found that start each prefix in the list passed.

Async Capabilities

You can use asynchronous functions by defining your client with the AsyncClient() class. All functions will become coroutines that need to be awaited. Here are two examples:

import asyncio
import replitdb

client = AsyncClient()
loop = asyncio.get_event_loop()

data = {
	...
}

loop.run_until_complete(client.set_dict(data))
import asyncio
import replitdb

client = AsyncClient()

data = {
	...
} 

async def foo():
	await client.set_dict(data)

asyncio.run(foo())

Known Issues

  • Repl.it UPM can't auto-detect package import.
  • Defualt client does not work in asynchronous enviornment.

Deprecated Functions

  • client.add(name) is now client.set(name)
  • client.add_dict({key:val}) is now client.set_dict({key:val})

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

replitdb-0.0.15.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

replitdb-0.0.15-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file replitdb-0.0.15.tar.gz.

File metadata

  • Download URL: replitdb-0.0.15.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.10

File hashes

Hashes for replitdb-0.0.15.tar.gz
Algorithm Hash digest
SHA256 7bd1f8533e0b952138f8bab3beb4587bad90f883c01688b13c7818c133d4ef49
MD5 742917deaa98d0b91bf711505cafaaf3
BLAKE2b-256 d71b380e77275b7d57b0d4a37834de7e35dc8b2436f4c774abdb101e18db4ad9

See more details on using hashes here.

File details

Details for the file replitdb-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: replitdb-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.10

File hashes

Hashes for replitdb-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 dde97f27f1fd5a2acc671c3af15609355cbee258344aca4b08dedd40f7c44429
MD5 113dc822de239b05e53c6a056de4dbb9
BLAKE2b-256 1bf372c1d8183064f23d8ac615e26956d63495eaf2df1dd59c7f7796b37647ed

See more details on using hashes here.

Supported by

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