def dformat(data, indent=0):
    padding = ' ' * indent
    from uio import StringIO
    buffer = StringIO()
    for key in sorted(data.keys()):
        value = data[key]
        buffer.write('{}{}: {}\n'.format(padding, key, value))
    return buffer.getvalue()
 def packtabs(self, s):
     sb = StringIO()
     for i in range(0, len(s), 8):
         c = s[i:i + 8]
         cr = c.rstrip(" ")
         if (len(c) - len(cr)) > 1:
             sb.write(cr + "\t") 
         else:
             sb.write(c)
     return sb.getvalue()
Beispiel #3
0
 def packtabs(self, s):
     sb = StringIO()
     for i in range(0, len(s), 8):
         c = s[i:i + 8]
         cr = c.rstrip(" ")
         if (len(c) - len(cr)) > 1:
             sb.write(cr + "\t")
         else:
             sb.write(c)
     return sb.getvalue()
Beispiel #4
0
def ddformat(data, indent=0):
    padding = ' ' * indent
    from uio import StringIO
    buffer = StringIO()
    for key in sorted(data.keys()):
        item = data[key]
        value = item['value']
        text = item.get('description', '')
        buffer.write('{}{:<40}{:>10}    {}\n'.format(padding, key, value, text))
    return buffer.getvalue()
    def packtabs(self, s):

        try: from uio import StringIO
        except: from _io import StringIO

        sb = StringIO()
        for i in range(0, len(s), 8):
            c = s[i:i + 8]
            cr = c.rstrip(" ")
            if (len(c) - len(cr)) > 1:
                sb.write(cr + "\t") ## Spaces at the end of a section
            else: sb.write(c)
        return sb.getvalue()
Beispiel #6
0
def expandtabs(s, tab_size=8):
    if '\t' in s:
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t': ## tab is seen
                sb.write(" " * (tab_size - pos % tab_size)) ## replace by space
                pos += tab_size - pos % tab_size
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue(), True
    else:
        return s, False
Beispiel #7
0
def expandtabs(s):
    if '\t' in s:
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t':
                sb.write(" " * (8 - pos % 8))
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue(), True
    else:
        return s, False
def expandtabs(s):
    if '\t' in s:
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t': 
                sb.write(" " * (8 - pos % 8)) 
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue(), True
    else:
        return s, False
Beispiel #9
0
 def expandtabs(self, s):
     if '\t' in s:
         self.write_tabs = True
         sb = StringIO()
         pos = 0
         for c in s:
             if c == '\t': ## tab is seen
                 sb.write(" " * (8 - pos % 8)) ## replace by space
                 pos += 8 - pos % 8
             else:
                 sb.write(c)
                 pos += 1
         return sb.getvalue()
     else:
         return s
Beispiel #10
0
def expandtabs(s):
    if '\t' in s:
        Editor.tab_seen = 'y'
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t':  ## tab is seen
                sb.write(" " * (8 - pos % 8))  ## replace by space
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue()
    else:
        return s
Beispiel #11
0
def expandtabs(s):
    from uio import StringIO

    if '\t' in s:
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t':  ## tab is seen
                sb.write(" " * (8 - pos % 8))  ## replace by space
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue()
    else:
        return s
Beispiel #12
0
def ddformat(data, indent=0):
    """

    :param data: 
    :param indent:  (Default value = 0)

    """
    padding = ' ' * indent
    from uio import StringIO
    buffer = StringIO()
    for key in sorted(data.keys()):
        item = data[key]
        value = item['value']
        text = item.get('description', '')
        buffer.write('{}{:<35}{:>25} {:>25}\n'.format(padding, key, value, text))
    return buffer.getvalue()
Beispiel #13
0
def expandtabs(s):
    try:
        from uio import StringIO
    except:
        from _io import StringIO
    if '\t' in s:
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t':
                sb.write(" " * (8 - pos % 8))
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue()
    else:
        return s
Beispiel #14
0
def expandtabs(s):
    try:
        from uio import StringIO
    except:
        from _io import StringIO
    if "\t" in s:
        Editor.tab_seen = "y"
        sb = StringIO()
        pos = 0
        for c in s:
            if c == "\t":
                sb.write(" " * (8 - pos % 8))
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue()
    else:
        return s
Beispiel #15
0
 def read_request(request: HttpRequest):
     # Observations show request payloads are capped at ~4308 bytes.
     # https://github.com/jczic/MicroWebSrv/issues/51
     from uio import StringIO
     buffer = StringIO()
     while True:
         try:
             log.info('Reading 4000 bytes from network')
             payload = request.Content
             if not payload:
                 log.info('Reading finished')
                 raise StopIteration()
             log.info('Writing {} bytes to buffer'.format(len(payload)))
             buffer.write(payload)
         except:
             break
     log.info('Rewinding buffer')
     buffer.seek(0)
     return buffer
Beispiel #16
0
def expandtabs(s):
    try: from uio import StringIO
    except: from _io import StringIO

    if '\t' in s:
#ifndef BASIC
        Editor.tab_seen = 'y'
#endif
        sb = StringIO()
        pos = 0
        for c in s:
            if c == '\t': ## tab is seen
                sb.write(" " * (8 - pos % 8)) ## replace by space
                pos += 8 - pos % 8
            else:
                sb.write(c)
                pos += 1
        return sb.getvalue()
    else:
        return s
Beispiel #17
0
    def to_line_protocol(self):
        from uio import StringIO
        stream = StringIO()

        stream.write(self.name)
        stream.write(',')

        def formatDict(dict):
            first = True
            for key, value in dict.items():
                if not first:
                    stream.write(',')
                else:
                    first = False

                arg = '{0}={1}'.format(key, value)
                stream.write(arg)

        formatDict(self.tags)
        stream.write(' ')
        formatDict(self.fields)

        return stream.getvalue()
Beispiel #18
0
def render_backup_contents():
    # simple text format:
    #   key = value
    # or #comments
    # but value is JSON
    from main import settings, pa

    rv = StringIO()

    def COMMENT(val=None):
        if val:
            rv.write('\n# %s\n' % val)
        else:
            rv.write('\n')

    def ADD(key, val):
        rv.write('%s = %s\n' % (key, ujson.dumps(val)))

    rv.write('# Coldcard backup file! DO NOT CHANGE.\n')

    chain = chains.current_chain()

    COMMENT('Private key details: ' + chain.name)

    with stash.SensitiveValues(for_backup=True) as sv:

        if sv.mode == 'words':
            ADD('mnemonic', tcc.bip39.from_data(sv.raw))

        if sv.mode == 'master':
            ADD('bip32_master_key', b2a_hex(sv.raw))

        ADD('chain', chain.ctype)
        ADD('xprv', chain.serialize_private(sv.node))
        ADD('xpub', chain.serialize_public(sv.node))

        # BTW: everything is really a duplicate of this value
        ADD('raw_secret', b2a_hex(sv.secret).rstrip(b'0'))

        if pa.has_duress_pin():
            COMMENT('Duress Wallet (informational)')
            dpk = sv.duress_root()
            ADD('duress_xprv', chain.serialize_private(dpk))
            ADD('duress_xpub', chain.serialize_public(dpk))

        if version.has_608:
            # save the so-called long-secret
            ADD('long_secret', b2a_hex(pa.ls_fetch()))

    COMMENT('Firmware version (informational)')
    date, vers, timestamp = version.get_mpy_version()[0:3]
    ADD('fw_date', date)
    ADD('fw_version', vers)
    ADD('fw_timestamp', timestamp)
    ADD('serial', version.serial_number())

    COMMENT('User preferences')

    # user preferences
    for k, v in settings.current.items():
        if k[0] == '_': continue  # debug stuff in simulator
        if k == 'xpub': continue  # redundant, and wrong if bip39pw
        if k == 'xfp': continue  # redundant, and wrong if bip39pw
        ADD('setting.' + k, v)

    if version.has_fatram:
        import hsm
        if hsm.hsm_policy_available():
            ADD('hsm_policy', hsm.capture_backup())

    rv.write('\n# EOF\n')

    return rv.getvalue()
Beispiel #19
0
def ESP_init(cl_s=b'esp001data'):
    f_log = StringIO()
    f_log.write('{"ESP_init":{\n')
    atemp = '"DATA_topic":"%s",\n' % (cl_s.decode())
    print(atemp)
    f_log.write(atemp)
    try:
        if ds_tm.lost_time():
            atemp = '"DS3231":"lost_time",\n'
            print(atemp)
            f_log.write(atemp)
            raise
        else:
            ds_tm.settime()
            atemp = '"DS3231 SetTime":"OK",\n'
            print(atemp)
            f_log.write(atemp)
            try:
                ntptime_cn.time()
                utime.sleep_ms(200)
                ntptime_cn.settime()
                ds_tm.sync_rtc2ntp()
                ds_tm.settime()
                atemp = '"NTP & RTC SyncTime":"OK",\n'
                print(atemp)
                f_log.write(atemp)
            except:
                pass
    except:
        ntptime_cn.time()
        utime.sleep(3)
        ntptime_cn.settime()
        atemp = '"NTP SetTime":"OK",\n'
        print(atemp)
        f_log.write(atemp)
        try:
            ds_tm.sync_rtc2ntp()
            ds_tm.settime()
            atemp = '"NTP & RTC SyncTime":"OK",\n'
            print(atemp)
            f_log.write(atemp)
        except:
            pass
    finally:
        atemp = '"Time":"%d-%02d-%02d %02d:%02d:%02d GMT",\n"Day_W":%d,"Day_Y":%d,\n' % (
            utime.localtime())
        print(atemp)
        f_log.write(atemp)
    try:
        atemp = '"DS3231 SQW":"1Hz Out Start%d",\n' % (ds_tm.sqw_1hz())
        print(atemp)
        f_log.write(atemp)
    except:
        atemp = '"DS3231 SQW":"1Hz Out ERROR",\n'
        print(atemp)
        f_log.write(atemp)
    try:
        sensor3 = SHT30()
        temperature, humidity = sensor3.measure()
        del sensor3
        atemp = '"ambient Temperature":"%f ºC","ambient Humidity":"%f %%",\n' % (
            temperature, humidity)
        print(atemp)
        f_log.write(atemp)
        atemp = '"Sensor SHT30":"OK",\n'
        print(atemp)
        f_log.write(atemp)
    except:
        pass
    try:
        sensor_k = MAX6675()
        atemp = '"K Thermocouple":"%f ºC",\n"Sensor MAX6675":"OK"}}..' % (
            sensor_k.measure())
        del sensor_k
        print(atemp)
        f_log.write(atemp)
    except:
        pass
    f_str = f_log.getvalue()
    f_log.close()
    return f_str