diff --git a/src/config/__init__.py b/src/config/__init__.py index 8f2ede60..2762a522 100755 --- a/src/config/__init__.py +++ b/src/config/__init__.py @@ -2,7 +2,10 @@ This file deals with configuration management. """ -import os, json, logger +import os + +import ujson as json +import logger import filepaths from . import onboarding diff --git a/src/httpapi/apiutils/getblockdata.py b/src/httpapi/apiutils/getblockdata.py index ad420ae1..fc9a615d 100644 --- a/src/httpapi/apiutils/getblockdata.py +++ b/src/httpapi/apiutils/getblockdata.py @@ -1,4 +1,5 @@ -import json +import ujson as json + from onionrblocks import onionrblockapi from onionrutils import bytesconverter, stringvalidators import onionrexceptions diff --git a/src/httpapi/configapi/__init__.py b/src/httpapi/configapi/__init__.py index e1226a3a..ea8fbc85 100755 --- a/src/httpapi/configapi/__init__.py +++ b/src/httpapi/configapi/__init__.py @@ -17,8 +17,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ -import json +import ujson as json from flask import Blueprint, request, Response, abort + import config, onionrutils from onionrutils.bytesconverter import bytes_to_str diff --git a/src/httpapi/friendsapi/__init__.py b/src/httpapi/friendsapi/__init__.py index 4447cc9c..03bc552c 100755 --- a/src/httpapi/friendsapi/__init__.py +++ b/src/httpapi/friendsapi/__init__.py @@ -1,9 +1,13 @@ -''' - Onionr - Private P2P Communication +"""Onionr - Private P2P Communication. - This file creates http endpoints for friend management -''' -''' +This file creates http endpoints for friend management +""" +import ujson as json + +from onionrusers import contactmanager +from flask import Blueprint, Response, request, abort, redirect +from coredb import keydb +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -16,12 +20,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -''' -import json -from onionrusers import contactmanager -from flask import Blueprint, Response, request, abort, redirect -from coredb import keydb - +""" friends = Blueprint('friends', __name__) @friends.route('/friends/list') diff --git a/src/httpapi/insertblock.py b/src/httpapi/insertblock.py index c245ea87..ce25b968 100644 --- a/src/httpapi/insertblock.py +++ b/src/httpapi/insertblock.py @@ -2,7 +2,7 @@ Create blocks with the client api server """ -import json +import ujson as json import threading from flask import Blueprint, Response, request, g diff --git a/src/onionrblocks/insert/main.py b/src/onionrblocks/insert/main.py index 10906d5e..948731af 100644 --- a/src/onionrblocks/insert/main.py +++ b/src/onionrblocks/insert/main.py @@ -18,7 +18,7 @@ along with this program. If not, see . """ from typing import Union -import json +import ujson as json from gevent import spawn diff --git a/src/onionrblocks/onionrblockapi.py b/src/onionrblocks/onionrblockapi.py index a03b5788..009a65ef 100755 --- a/src/onionrblocks/onionrblockapi.py +++ b/src/onionrblocks/onionrblockapi.py @@ -1,9 +1,26 @@ -''' - Onionr - P2P Anonymous Storage Network +"""Onionr - P2P Anonymous Storage Network. - This file contains the OnionrBlocks class which is a class for working with Onionr blocks -''' -''' +OnionrBlocks class for abstraction of blocks +""" +import binascii +import os +import datetime +import onionrstorage + +import unpaddedbase32 +import ujson as json +import nacl.exceptions + +import logger +import onionrexceptions +from onionrusers import onionrusers +from onionrutils import stringvalidators, epoch +from coredb import blockmetadb +from onionrutils import bytesconverter +from onionrstorage import removeblock +import onionrblocks +from onionrcrypto import encryption, cryptoutils as cryptoutils, signing +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -16,18 +33,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -''' -import unpaddedbase32 -import binascii -import logger, config, onionrexceptions, nacl.exceptions -import json, os, sys, datetime, base64, onionrstorage -from onionrusers import onionrusers -from onionrutils import stringvalidators, epoch -from coredb import blockmetadb -from onionrutils import bytesconverter -from onionrstorage import removeblock -import onionrblocks -from onionrcrypto import encryption, cryptoutils as cryptoutils, signing +""" + + class Block: blockCacheOrder = list() # NEVER write your own code that writes to this! blockCache = dict() # should never be accessed directly, look at Block.getCache() @@ -62,9 +70,9 @@ class Block: self.update() def decrypt(self, encodedData = True): - ''' + """ Decrypt a block, loading decrypted data into their vars - ''' + """ if self.decrypted: return True @@ -126,9 +134,9 @@ class Block: return retData def verifySig(self): - ''' + """ Verify if a block's signature is signed by its claimed signer - ''' + """ if self.signer is None: return False if signing.ed_verify(data=self.signedData, key=self.signer, sig=self.signature, encodedData=True): @@ -138,7 +146,7 @@ class Block: return self.validSig def update(self, data = None, file = None): - ''' + """ Loads data from a block in to the current object. Inputs: @@ -151,7 +159,7 @@ class Block: Outputs: - (bool): indicates whether or not the operation was successful - ''' + """ try: # import from string blockdata = data @@ -205,12 +213,12 @@ class Block: return False def delete(self): - ''' + """ Deletes the block's file and records, if they exist Outputs: - (bool): whether or not the operation was successful - ''' + """ if self.exists(): try: @@ -224,7 +232,7 @@ class Block: return False def save(self, sign = False, recreate = True): - ''' + """ Saves a block to file and imports it into Onionr Inputs: @@ -233,7 +241,7 @@ class Block: Outputs: - (bool): whether or not the operation was successful - ''' + """ try: if self.isValid() is True: @@ -253,45 +261,45 @@ class Block: # getters def getExpire(self): - ''' + """ Returns the expire time for a block Outputs: - (int): the expire time for a block, or None - ''' + """ return self.expire def getHash(self): - ''' + """ Returns the hash of the block if saved to file Outputs: - (str): the hash of the block, or None - ''' + """ return self.hash def getType(self): - ''' + """ Returns the type of the block Outputs: - (str): the type of the block - ''' + """ return self.btype def getRaw(self): - ''' + """ Returns the raw contents of the block, if saved to file Outputs: - (bytes): the raw contents of the block, or None - ''' + """ return self.raw def getHeader(self, key = None, default = None): - ''' + """ Returns the header information Inputs: @@ -299,7 +307,7 @@ class Block: Outputs: - (dict/str): either the whole header as a dict, or one value - ''' + """ if not key is None: if key in self.getHeader(): @@ -308,7 +316,7 @@ class Block: return self.bheader def getMetadata(self, key = None, default = None): - ''' + """ Returns the metadata information Inputs: @@ -316,7 +324,7 @@ class Block: Outputs: - (dict/str): either the whole metadata as a dict, or one value - ''' + """ if not key is None: if key in self.getMetadata(): @@ -325,77 +333,77 @@ class Block: return self.bmetadata def getContent(self): - ''' + """ Returns the contents of the block Outputs: - (str): the contents of the block - ''' + """ return self.bcontent def getDate(self): - ''' + """ Returns the date that the block was received, if loaded from file Outputs: - (datetime): the date that the block was received - ''' + """ return self.date def getBlockFile(self): - ''' + """ Returns the location of the block file if it is saved Outputs: - (str): the location of the block file, or None - ''' + """ return self.blockFile def isValid(self): - ''' + """ Checks if the block is valid Outputs: - (bool): whether or not the block is valid - ''' + """ return self.valid def isSigned(self): - ''' + """ Checks if the block was signed Outputs: - (bool): whether or not the block is signed - ''' + """ return self.signed def getSignature(self): - ''' + """ Returns the base64-encoded signature Outputs: - (str): the signature, or None - ''' + """ return self.signature def getSignedData(self): - ''' + """ Returns the data that was signed Outputs: - (str): the data that was signed, or None - ''' + """ return self.signedData def isSigner(self, signer, encodedData = True): - ''' + """ Checks if the block was signed by the signer inputted Inputs: @@ -404,7 +412,7 @@ class Block: Outputs: - (bool): whether or not the signer of the block is the signer inputted - ''' + """ signer = unpaddedbase32.repad(bytesconverter.str_to_bytes(signer)) try: if (not self.isSigned()) or (not stringvalidators.validate_pub_key(signer)): @@ -417,7 +425,7 @@ class Block: # setters def setType(self, btype): - ''' + """ Sets the type of the block Inputs: @@ -425,13 +433,13 @@ class Block: Outputs: - (Block): the Block instance - ''' + """ self.btype = btype return self def setMetadata(self, key, val): - ''' + """ Sets a custom metadata value Metadata should not store block-specific data structures. @@ -442,13 +450,13 @@ class Block: Outputs: - (Block): the Block instance - ''' + """ self.bmetadata[key] = val return self def setContent(self, bcontent): - ''' + """ Sets the contents of the block Inputs: @@ -456,14 +464,14 @@ class Block: Outputs: - (Block): the Block instance - ''' + """ self.bcontent = str(bcontent) return self # static functions def exists(bHash): - ''' + """ Checks if a block is saved to file or not Inputs: @@ -473,7 +481,7 @@ class Block: Outputs: - (bool): whether or not the block file exists - ''' + """ # no input data? scrap it. if bHash is None: diff --git a/src/onionrsetup/setupconfig.py b/src/onionrsetup/setupconfig.py index 12024459..703e1853 100755 --- a/src/onionrsetup/setupconfig.py +++ b/src/onionrsetup/setupconfig.py @@ -1,9 +1,19 @@ -''' - Onionr - Private P2P Communication +"""Onionr - Private P2P Communication. - Initialize Onionr configuration -''' -''' +Initialize Onionr configuration +""" +import os +import base64 + +import ujson as json + +import config +import logger +import netcontroller +from etc import onionrvalues +from logger.settings import * +from utils import readstatic +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -16,15 +26,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -''' -import os, json, base64 -import config, logger, netcontroller -from etc import onionrvalues -from logger.settings import * -from utils import readstatic +""" + def setup_config(): - if not os.path.exists(config._configfile): # this is the default config, it will be overwritten if a config file already exists. Else, it saves it conf_data = readstatic.read_static('default_config.json', ret_bin=False) diff --git a/src/onionrstatistics/devreporting/__init__.py b/src/onionrstatistics/devreporting/__init__.py index e9047832..6a9bb422 100644 --- a/src/onionrstatistics/devreporting/__init__.py +++ b/src/onionrstatistics/devreporting/__init__.py @@ -1,10 +1,29 @@ +"""Onionr - Private P2P Communication. + +Dev utility to profile an Onionr subnetwork. +""" +import ujson as json + import config from utils.bettersleep import better_sleep from utils.gettransports import get as get_transports from onionrutils import basicrequests from onionrutils import epoch +""" + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" -import json def statistics_reporter(shared_state): server = config.get('statistics.server', '') diff --git a/src/onionrstatistics/transports/tor/__init__.py b/src/onionrstatistics/transports/tor/__init__.py index 577d1620..cb98f91a 100644 --- a/src/onionrstatistics/transports/tor/__init__.py +++ b/src/onionrstatistics/transports/tor/__init__.py @@ -2,8 +2,7 @@ """ -import json - +import ujson as json from stem import CircStatus from netcontroller.torcontrol.torcontroller import get_controller diff --git a/src/onionrusers/contactmanager.py b/src/onionrusers/contactmanager.py index d5910b51..c4630f03 100755 --- a/src/onionrusers/contactmanager.py +++ b/src/onionrusers/contactmanager.py @@ -1,9 +1,19 @@ -''' - Onionr - Private P2P Communication +"""Onionr - Private P2P Communication. - Sets more abstract information related to a peer. Can be thought of as traditional 'contact' system -''' -''' +Set more abstract information related to a peer. +Can be thought of as traditional 'contact' system +""" +import os + +import ujson as json +import unpaddedbase32 + +import onionrexceptions +from onionrusers import onionrusers +from onionrutils import bytesconverter, epoch +from utils import identifyhome +from onionrutils import mnemonickeys +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -16,16 +26,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -''' -import os, json -import unpaddedbase32 -import niceware +""" + -import onionrexceptions -from onionrusers import onionrusers -from onionrutils import bytesconverter, epoch -from utils import identifyhome -from onionrutils import mnemonickeys class ContactManager(onionrusers.OnionrUser): def __init__(self, publicKey, saveUser=False, recordExpireSeconds=5): try: @@ -43,10 +46,10 @@ class ContactManager(onionrusers.OnionrUser): self.recordExpire = recordExpireSeconds self.data = self._loadData() self.deleted = False - + if not os.path.exists(self.dataDir): os.mkdir(self.dataDir) - + def _writeData(self): data = json.dumps(self.data) with open(self.dataFile, 'w') as dataFile: @@ -68,7 +71,7 @@ class ContactManager(onionrusers.OnionrUser): if autoWrite: self._writeData() return - + def get_info(self, key, forceReload=False): if self.deleted: raise onionrexceptions.ContactDeleted