pycrossword  0.4
Pure-Python implementation of a crossword puzzle generator and editor
Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
pycross.utils.onlineservices.Cloudstorage Class Reference

Interface for the Kloudless cloud storage API. More...

Public Member Functions

def __init__ (self, settings, auto_create_user=False, on_user_exist=None, on_update_users=None, on_error=None, show_errors=False, on_apikey_required=None, on_bearer_required=None, timeout=5000)
 
def init_settings (self, auto_create_user=True)
 Initializes the Kloudless config, optionally creating the user account and folders. More...
 
def find_or_create_folder (self, folder_name)
 Finds or creates a new subfolder in the current user's folder. More...
 
def clear_folder (self, folder_id=None)
 Clears given (sub)folder. More...
 
def delete_folder (self, folder_id, permanent=True, recurse=True)
 Deletes the folder with the given ID, optionally permanently. More...
 
def rename_folder (self, folder_id, new_name)
 Renames the given (sub)folder. More...
 
def upload_file (self, filepath, folder_id=None, overwrite=False, makelink=True, activelink=True, directlink=True, expire=None, password=None)
 Uploads a file into the current user's folder (optionally subfolder) and returns the link info. More...
 
def delete_file (self, file_id, permanent=True)
 Deletes the file with the given ID, optionally permanently. More...
 
def rename_file (self, file_id, new_name)
 Renames the given file (in the original folder). More...
 
def download_file (self, file_id, save_folder='', overwrite=False)
 Downloads the given file and saves it to a local folder. More...
 
def create_file_link (self, file_id, activelink=True, directlink=True, expire=None, password=None)
 Creates a public link to the specified file (given by a file ID). More...
 
def get_file_link (self, link_id)
 Retrieves file link info (given by link ID). More...
 
def update_file_link (self, link_id, activelink=None, expire=None, password=None)
 Updates the public link to the specified file (given by file ID). More...
 
def delete_file_link (self, link_id)
 Deletes the public link to the specified file (given by file ID). More...
 

Public Attributes

 settings
 dict stored pointer to app global settings More...
 
 timeout
 int network request timeout (in msec.) More...
 
 on_user_exist
 callable callback function called when the user with the name stored in the app settings already exists More...
 
 on_update_users
 callable callback function fired when the user list (list of users connected to the cloud) is updated More...
 
 on_error
 callable callback function fired when an exception is raised More...
 
 show_errors
 bool whether to display error messages in GUI dialogs More...
 
 on_apikey_required
 callable callback function called when the app requires the user to enter a Kloudless API key More...
 
 on_bearer_required
 callable callback function called when the app requires the user to enter a Kloudless Bearer Token More...
 
 users
 list list of users connected to the cloud More...
 

Static Public Attributes

string APIURL = 'https://api.kloudless.com/v2/'
 base URL for Kloudless Storage API (version 2) More...
 
int ACCID = 352604900
 DropBox account ID (connected to the pycross app on Kloudless) More...
 
string ROOTNAME = 'pycrossall'
 root folder name on DropBox More...
 
string APP_ID = 'RXaPpmxluGS7vMYoWfve847PzGuvPVdbunZe2W_vJKQdvxzx'
 pycrossword app ID on Kloudless More...
 
string OAUTH_URL = f"https://api.kloudless.com/v1/oauth/?client_id={APP_ID}&response_type=token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=dropbox&state={{}}"
 base URL for OAuth 2.0 authorization chain More...
 

Private Member Functions

def _authenticate (self, force_api_key=False)
 Authenticates the user using either the API key or the Bearer Token. More...
 
def _error (self, message, code=None, title=_('Error'), msgtype='error', raise_error=False)
 Shows an error message or raises an exception. More...
 
def _error_tostr (self, error)
 Converts an error dictionary object into a single string. More...
 
def _request (self, url, command='get', returntype='json', error_keymap={ 'message':'message', 'code':'status_code'}, **kwargs)
 Sumbits an HTTP(S) request to a URL and returns the result. More...
 
def _get_apikey (self)
 Unless no Kloudless API key is stored in Cloudstorage::_apikey, asks the user to provide one. More...
 
def _get_bearer (self)
 Unless no Bearer Token is stored in Cloudstorage::_bearer, asks the user to provide one. More...
 
def _check_bearer (self, bearer_token=None)
 Validates the provided Bearer Token againt the app ID in Kloudless. More...
 
def _make_headers (self, content_type='application/json', force_api_key=False)
 Authenticates the user for an operation and returns the corresponding headers. More...
 
def _get_accounts (self, enabled=None, admin=None, search=None)
 Service method: lists all accounts tied to the pycross app on Kloudless. More...
 
def _get_account_matadata (self, account_id, retrieve_tokens=False, retrieve_full=True)
 Service method: gets metadata for account specified by 'account_id'. More...
 
def _get_quota (self)
 Retrieves storage quota information. More...
 
def _get_folder_objects (self, fid, recurse=False)
 Lists items in a folder. More...
 
def _get_folder_ancestors (self, folder_id)
 Gets a folder's parent folders (ancestors). More...
 
def _is_user_folder (self, folder_id)
 Checks if given folder is inside current user's folder. More...
 
def _generate_username (self)
 Generates a randon user name (GUID). More...
 
def _create_folder (self, folder_name, parent_id='root', error_on_exist=False)
 Creates a new folder within the current user's space on DropBox. More...
 
def _update_users (self)
 Updates the list of subfolders present in dropbox/pycrossall root folder. More...
 
def _get_file_metadata (self, file_id)
 Retrieves the metadata of the given file: name, path, size, date, etc. More...
 
def _get_folder_metadata (self, folder_id=None)
 Retrieves the metadata of the given folder: name, path, size, date, etc. More...
 
def _user_exists (self, username, update_user_list=False)
 Checks if a user with the given name exists. More...
 
def _find_or_create_user (self, username=None, update_user_list=False)
 Creates or finds a user folder in dropbox/pycrossall/<username>. More...
 
def _delete_user (self, username=None)
 Deletes a user permanently. More...
 

Private Attributes

 _accid
 str Kloudless account ID More...
 
 _baseurl
 str base URL for REST requests to the Kloudless API More...
 
 _rootid
 str root folder ID in the DropBox storage More...
 
 _apikey
 str the stored API key More...
 
 _bearer
 str the stored Bearer Token More...
 
 _user
 tuple current user; contains 3 elements: More...
 

Detailed Description

Interface for the Kloudless cloud storage API.

Kloudless lets user apps integrate a number of external storage services (like DropBox or Google Drive) and access data via a single API. pycrossword uses a registered app on Kloudless (pycross) that is tied to a default DropBox file storage account. Most methods deal with fildes and folders referencing them by their unique IDs (hash strings). Read the Kloudless docs to learn more.

Constructor & Destructor Documentation

◆ __init__()

def pycross.utils.onlineservices.Cloudstorage.__init__ (   self,
  settings,
  auto_create_user = False,
  on_user_exist = None,
  on_update_users = None,
  on_error = None,
  show_errors = False,
  on_apikey_required = None,
  on_bearer_required = None,
  timeout = 5000 
)
Parameters
settingsdict pointer to the app settings dictionary (pycross::guisettings::CWSettings::settings)
auto_create_userbool create a new user account if the user ID stored in the app global settings is not active / not found
on_user_existcallable callback function called when the user with the name stored in the app settings already exists. The callback tales one parameter – the user name, and returns a Boolean value: True to go on with that user name, False to cancel
on_update_userscallable callback function fired when the user list (list of users connected to the cloud) is updated; it takes one argument – a list of users and returns nothing
on_errorcallable callback function fired when an exception is raised; it takes a single argument – the error message
show_errorsbool whether to display error messages in GUI dialogs
on_apikey_requiredcallable callback function called when the app requires the user to enter a Kloudless API key; it takes one argument – a list containing two elements:
  • str the API key entered by the user
  • bool user action result: True = use the API key, False = cancel
on_bearer_requiredcallable callback function called when the app requires the user to enter a Kloudless Bearer Token; it takes one argument – a list containing two elements:
  • str the Bearer Token entered by the user
  • bool user action result: True = use the Bearer Token, False = cancel
timeoutint network request timeout (in msec.)

Member Function Documentation

◆ _authenticate()

def pycross.utils.onlineservices.Cloudstorage._authenticate (   self,
  force_api_key = False 
)
private

Authenticates the user using either the API key or the Bearer Token.

Parameters
force_api_keybool if True, the API key will be demanded regardless of the existing Bearer Token (used for admin operations)
Returns
str | None the authentication method used ('APIKey' or 'Bearer') or None on failure to authenticate

◆ _check_bearer()

def pycross.utils.onlineservices.Cloudstorage._check_bearer (   self,
  bearer_token = None 
)
private

Validates the provided Bearer Token againt the app ID in Kloudless.

Parameters
bearer_tokenstr the user's Bearer Token; if None, it will be retrieved from Cloudstorage::_bearer
Returns
bool True if the Bearer Token has been successfully validated; False otherwise

◆ _create_folder()

def pycross.utils.onlineservices.Cloudstorage._create_folder (   self,
  folder_name,
  parent_id = 'root',
  error_on_exist = False 
)
private

Creates a new folder within the current user's space on DropBox.

Parameters
folder_namestr the new folder name
parent_idstr the ID of the parent folder (where the new one is to be created)
error_on_existbool cancel operation if the folder with that name already exists in the indicated location; if False, the existing folder will be used
Returns
tuple|None tuple containing the new folder data:
  1. folder name
  2. folder ID
  3. full path to folder In case of failure (e.g. when the folder exists and error_on_exist is True), returns None.
See also
Kloudless docs

◆ _delete_user()

def pycross.utils.onlineservices.Cloudstorage._delete_user (   self,
  username = None 
)
private

Deletes a user permanently.

This in effect deletes the corresponding user's root folder from the app root folder on DropBox (pycrossall/<username>), naturally erasing all its contents.

Parameters
usernamestr|None name of the user to delete; if None, the current user will be deleted
Warning
Note that you cannot delete other users unless authorized by the application API Key on Kloudless!
Returns
bool True on success, False on failure

◆ _error()

def pycross.utils.onlineservices.Cloudstorage._error (   self,
  message,
  code = None,
  title = _('Error'),
  msgtype = 'error',
  raise_error = False 
)
private

Shows an error message or raises an exception.

Calls Cloudstorage::on_error.

Parameters
messagestr the error / exception message
codestr code fragment where the exceptio has occurred
titlestr error dialog title (caption)
msgtypestr error dialog type (icon) as given in utils::MsgBox()
raise_errorbool if True, an Exception will be raised reporting that error
Exceptions
<tt>Exception</tt>if raise_error is True

◆ _error_tostr()

def pycross.utils.onlineservices.Cloudstorage._error_tostr (   self,
  error 
)
private

Converts an error dictionary object into a single string.

Parameters
errordict | str error data with 2 keys: 'message' (error message) and 'code' (the code fragment that caused the error); or a prepared error message
Returns
str formatted error message

◆ _find_or_create_user()

def pycross.utils.onlineservices.Cloudstorage._find_or_create_user (   self,
  username = None,
  update_user_list = False 
)
private

Creates or finds a user folder in dropbox/pycrossall/<username>.

Parameters
usernamestr user name to find or create. If None (default), a new unique name will be generated with _generate_username(). Otherwise, the behavior depends on the result of Cloudstorage::on_user_exist callback: if it is set and returns True, the found user will be stored as the current user (Cloudstorage::_user) and saved to the app global settings. Otherwise, the methods returns False.
update_user_listbool whether the user list (Cloudstorage::users) must first be refreshed from the server

◆ _generate_username()

def pycross.utils.onlineservices.Cloudstorage._generate_username (   self)
private

Generates a randon user name (GUID).

Returns
str new user name

◆ _get_account_matadata()

def pycross.utils.onlineservices.Cloudstorage._get_account_matadata (   self,
  account_id,
  retrieve_tokens = False,
  retrieve_full = True 
)
private

Service method: gets metadata for account specified by 'account_id'.

Parameters
account_idstr requested account ID
retrieve_tokensbool include Bearer Tokens in result
retrieve_fullbool include full account info in result (like quota etc.)
Returns
dict account metadata
See also
Kloudless docs

◆ _get_accounts()

def pycross.utils.onlineservices.Cloudstorage._get_accounts (   self,
  enabled = None,
  admin = None,
  search = None 
)
private

Service method: lists all accounts tied to the pycross app on Kloudless.

Parameters
enabledbool|None list only enabled or disabled accounts; None = list all
adminbool|None list only admin/non-admin accounts; None = list all
searchstr search string to locate specific users
Returns
dict accounts data
See also
Kloudless docs

◆ _get_apikey()

def pycross.utils.onlineservices.Cloudstorage._get_apikey (   self)
private

Unless no Kloudless API key is stored in Cloudstorage::_apikey, asks the user to provide one.

◆ _get_bearer()

def pycross.utils.onlineservices.Cloudstorage._get_bearer (   self)
private

Unless no Bearer Token is stored in Cloudstorage::_bearer, asks the user to provide one.

◆ _get_file_metadata()

def pycross.utils.onlineservices.Cloudstorage._get_file_metadata (   self,
  file_id 
)
private

Retrieves the metadata of the given file: name, path, size, date, etc.

Parameters
file_idstr the ID of the requested file
See also
_get_folder_metadata()
Kloudless docs

◆ _get_folder_ancestors()

def pycross.utils.onlineservices.Cloudstorage._get_folder_ancestors (   self,
  folder_id 
)
private

Gets a folder's parent folders (ancestors).

Parameters
folder_idstr folder ID
Returns
dict folder ancestors
See also
Kloudless docs

◆ _get_folder_metadata()

def pycross.utils.onlineservices.Cloudstorage._get_folder_metadata (   self,
  folder_id = None 
)
private

Retrieves the metadata of the given folder: name, path, size, date, etc.

If folder_id is None, the current user's folder will be used.

Parameters
folder_idstr the ID of the requested folder
See also
_get_file_metadata()
Kloudless docs

◆ _get_folder_objects()

def pycross.utils.onlineservices.Cloudstorage._get_folder_objects (   self,
  fid,
  recurse = False 
)
private

Lists items in a folder.

Parameters
fidstr folder ID
recursebool recurse into subfolders
Returns
dict folder elements (subfolders and files)
See also
Kloudless docs

◆ _get_quota()

def pycross.utils.onlineservices.Cloudstorage._get_quota (   self)
private

Retrieves storage quota information.

Returns
dict storage quota info
See also
Kloudless docs

◆ _is_user_folder()

def pycross.utils.onlineservices.Cloudstorage._is_user_folder (   self,
  folder_id 
)
private

Checks if given folder is inside current user's folder.

Parameters
folder_idstr folder ID
Returns
bool True if the given folder is inside the current user's root folder; False otherwise

◆ _make_headers()

def pycross.utils.onlineservices.Cloudstorage._make_headers (   self,
  content_type = 'application/json',
  force_api_key = False 
)
private

Authenticates the user for an operation and returns the corresponding headers.

Parameters
content_typestr application content type string
force_api_keybool demand API key unconditionally
Returns
dict|None HTTP(S) headers with content type and auth details or None if failed to authorize user

◆ _request()

def pycross.utils.onlineservices.Cloudstorage._request (   self,
  url,
  command = 'get',
  returntype = 'json',
  error_keymap = {'message': 'message', 'code': 'status_code'},
**  kwargs 
)
private

Sumbits an HTTP(S) request to a URL and returns the result.

Parameters
urlstr the requested URL
commandstr any of the four HTTP(S) verbs:
  • 'get' the GET command
  • 'post' the POST command
  • 'delete' the DELETE command
  • 'update' the UPDATE command
returntypestr type of the returned results; any of:
  • 'json' (default) Python dictionary constructed from JSON text
  • 'bool' Boolean value (True or False)
  • 'text' Unicode-formatted text
  • <anything else> raw result contents (bytes)
error_keymapdict dictionary mapping the error message and code to the keys in the JSON result
kwargskeyword arguments additional args that may be passed to the requests methods (like timeout, proxies etc.)
Returns
dict|str|bool|bytes request result depending on the value of returntype

◆ _update_users()

def pycross.utils.onlineservices.Cloudstorage._update_users (   self)
private

Updates the list of subfolders present in dropbox/pycrossall root folder.

The names of these subfolders correspond to the names of the registered users. Each element in Cloudstorage::users is a 3-tuple:

  1. user name (in lower case)
  2. user ID (unique hash string)
  3. path to user's root folder

◆ _user_exists()

def pycross.utils.onlineservices.Cloudstorage._user_exists (   self,
  username,
  update_user_list = False 
)
private

Checks if a user with the given name exists.

Internally, it checks if a folder with that user name exists in the root folder. Remember that folders placed in the root folder (1-level folders) correspond to user 'accounts'. Each user can operate only within his/her folder.

Parameters
usernamestr name of the user to check
update_user_listbool whether the user list (Cloudstorage::users) must first be refreshed from the server
Returns
tuple|None 3-tuple containing information on the existing user if the user is found (see _update_users()), or None if the user is not found

◆ clear_folder()

def pycross.utils.onlineservices.Cloudstorage.clear_folder (   self,
  folder_id = None 
)

Clears given (sub)folder.

Parameters
folder_idstr|None ID of the folder to clear; if None (default), the current user's root folder will be used
Returns
bool True on success, False on failure

◆ create_file_link()

def pycross.utils.onlineservices.Cloudstorage.create_file_link (   self,
  file_id,
  activelink = True,
  directlink = True,
  expire = None,
  password = None 
)

Creates a public link to the specified file (given by a file ID).

Parameters
file_idstr ID of the file
activelinkbool True to enable the external link, False to disable it
directlinkbool True to make the external link direct, False to use redirection
expiredatetime|None expiry date&time for the link (None = never expire)
passwordstr|None password to protect the link for downloading (None = don't protect)
Returns
dict|None the link meta info or None on failure
See also
Kloudless docs

◆ delete_file()

def pycross.utils.onlineservices.Cloudstorage.delete_file (   self,
  file_id,
  permanent = True 
)

Deletes the file with the given ID, optionally permanently.

Parameters
file_idstr ID of the file to delete
permanentbool whether to delete the file permanently
Returns
bool True on success, False on failure
See also
Kloudless docs

◆ delete_file_link()

def pycross.utils.onlineservices.Cloudstorage.delete_file_link (   self,
  link_id 
)

Deletes the public link to the specified file (given by file ID).

Parameters
link_idstr ID of the file link
Returns
bool True on success / False on failure

◆ delete_folder()

def pycross.utils.onlineservices.Cloudstorage.delete_folder (   self,
  folder_id,
  permanent = True,
  recurse = True 
)

Deletes the folder with the given ID, optionally permanently.

Parameters
folder_idstr ID of the folder to clear
permanentbool whether to delete the folder permanently
recursebool whether to recurse into subdirectories (effectively clearing everything in that folder)
Returns
bool True on success, False on failure
See also
Kloudless docs

◆ download_file()

def pycross.utils.onlineservices.Cloudstorage.download_file (   self,
  file_id,
  save_folder = '',
  overwrite = False 
)

Downloads the given file and saves it to a local folder.

Parameters
file_idstr ID of the file to download
save_folderstr path to a local folder to save the file; if empty (default), the current working directory is used
overwritebool whether to overwrite existing files (if False, an error is displayed)
See also
Kloudless docs

◆ find_or_create_folder()

def pycross.utils.onlineservices.Cloudstorage.find_or_create_folder (   self,
  folder_name 
)

Finds or creates a new subfolder in the current user's folder.

Parameters
folder_namestr new folder name
Returns
tuple|None the result of _create_folder()

◆ get_file_link()

def pycross.utils.onlineservices.Cloudstorage.get_file_link (   self,
  link_id 
)

Retrieves file link info (given by link ID).

Parameters
link_idstr ID of the file link
Returns
dict the link meta info
See also
Kloudless docs

◆ init_settings()

def pycross.utils.onlineservices.Cloudstorage.init_settings (   self,
  auto_create_user = True 
)

Initializes the Kloudless config, optionally creating the user account and folders.

Parameters
auto_create_userbool create a new user account if the user ID stored in the app global settings is not active / not found

◆ rename_file()

def pycross.utils.onlineservices.Cloudstorage.rename_file (   self,
  file_id,
  new_name 
)

Renames the given file (in the original folder).

Parameters
file_idstr ID of the file to rename
new_namestr new file name
Returns
tuple|None the tuple ('file name', 'file id') on success or None on failure
See also
Kloudless docs

◆ rename_folder()

def pycross.utils.onlineservices.Cloudstorage.rename_folder (   self,
  folder_id,
  new_name 
)

Renames the given (sub)folder.

Parameters
folder_idstr ID of the folder to clear
new_namestr new folder name
Returns
tuple|None the tuple ('folder name', 'folder id') on success or None on failure
See also
Kloudless docs

◆ update_file_link()

def pycross.utils.onlineservices.Cloudstorage.update_file_link (   self,
  link_id,
  activelink = None,
  expire = None,
  password = None 
)

Updates the public link to the specified file (given by file ID).

Parameters
link_idstr ID of the file link
activelinkbool True to enable the external link, False to disable it
expiredatetime|None expiry date&time for the link (None = never expire)
passwordstr|None password to protect the link for downloading (None = don't protect)
Returns
dict|None the link meta info or None on failure
See also
Kloudless docs

◆ upload_file()

def pycross.utils.onlineservices.Cloudstorage.upload_file (   self,
  filepath,
  folder_id = None,
  overwrite = False,
  makelink = True,
  activelink = True,
  directlink = True,
  expire = None,
  password = None 
)

Uploads a file into the current user's folder (optionally subfolder) and returns the link info.

Parameters
filepathstr full path to the local file to upload
folder_idstr|None ID of the folder to clear; if None (default), the current user's root folder will be used
overwritebool whether to overwrite the existing file, if found; if True, the first file with the same name will be overwritten; if False, the uploaded file will be automatically renamed
makelinkbool whether to generate a permanent external link (URL) to the uploaded file (e.g. to share it)
activelinkbool True to enable the external link, False to disable it
directlinkbool True to make the external link direct, False to use redirection
expiredatetime|None expiry date&time for the link (None = never expire)
passwordstr|None password to protect the link for downloading (None = don't protect)
Returns
dict|None the result of create_file_link() or None on failure
See also
Kloudless docs

Member Data Documentation

◆ _accid

pycross.utils.onlineservices.Cloudstorage._accid
private

str Kloudless account ID

◆ _apikey

pycross.utils.onlineservices.Cloudstorage._apikey
private

str the stored API key

◆ _baseurl

pycross.utils.onlineservices.Cloudstorage._baseurl
private

str base URL for REST requests to the Kloudless API

◆ _bearer

pycross.utils.onlineservices.Cloudstorage._bearer
private

str the stored Bearer Token

◆ _rootid

pycross.utils.onlineservices.Cloudstorage._rootid
private

str root folder ID in the DropBox storage

◆ _user

pycross.utils.onlineservices.Cloudstorage._user
private

tuple current user; contains 3 elements:

  1. user name (in lower case)
  2. user ID (unique hash string)
  3. path to user's root folder

◆ ACCID

int pycross.utils.onlineservices.Cloudstorage.ACCID = 352604900
static

DropBox account ID (connected to the pycross app on Kloudless)

◆ APIURL

string pycross.utils.onlineservices.Cloudstorage.APIURL = 'https://api.kloudless.com/v2/'
static

base URL for Kloudless Storage API (version 2)

◆ APP_ID

string pycross.utils.onlineservices.Cloudstorage.APP_ID = 'RXaPpmxluGS7vMYoWfve847PzGuvPVdbunZe2W_vJKQdvxzx'
static

pycrossword app ID on Kloudless

◆ OAUTH_URL

string pycross.utils.onlineservices.Cloudstorage.OAUTH_URL = f"https://api.kloudless.com/v1/oauth/?client_id={APP_ID}&response_type=token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=dropbox&state={{}}"
static

base URL for OAuth 2.0 authorization chain

◆ on_apikey_required

pycross.utils.onlineservices.Cloudstorage.on_apikey_required

callable callback function called when the app requires the user to enter a Kloudless API key

◆ on_bearer_required

pycross.utils.onlineservices.Cloudstorage.on_bearer_required

callable callback function called when the app requires the user to enter a Kloudless Bearer Token

◆ on_error

pycross.utils.onlineservices.Cloudstorage.on_error

callable callback function fired when an exception is raised

◆ on_update_users

pycross.utils.onlineservices.Cloudstorage.on_update_users

callable callback function fired when the user list (list of users connected to the cloud) is updated

◆ on_user_exist

pycross.utils.onlineservices.Cloudstorage.on_user_exist

callable callback function called when the user with the name stored in the app settings already exists

◆ ROOTNAME

string pycross.utils.onlineservices.Cloudstorage.ROOTNAME = 'pycrossall'
static

root folder name on DropBox

◆ settings

pycross.utils.onlineservices.Cloudstorage.settings

dict stored pointer to app global settings

◆ show_errors

pycross.utils.onlineservices.Cloudstorage.show_errors

bool whether to display error messages in GUI dialogs

◆ timeout

pycross.utils.onlineservices.Cloudstorage.timeout

int network request timeout (in msec.)

◆ users

pycross.utils.onlineservices.Cloudstorage.users

list list of users connected to the cloud


The documentation for this class was generated from the following file: