Changeset 0f596fb in trunk


Ignore:
Timestamp:
2024-02-21T15:16:07Z (13 months ago)
Author:
Itamar Turner-Trauring <itamar@…>
Branches:
master
Children:
62f59fb6
Parents:
2783bd8 (diff), 3afd2dc (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge remote-tracking branch 'origin/master' into 4072-no-more-blocking-part-2

Files:
3 added
107 deleted
256 edited
4 moved

Legend:

Unmodified
Added
Removed
  • TabularUnified NEWS.rst

    r2783bd8 r0f596fb  
    66
    77.. towncrier start line
     8Release 1.190 (2024-01-04)
     9''''''''''''''''''''''''''
     10
     11Features
     12--------
     13
     14- Tahoe-LAFS now includes a new "Grid Manager" specification and implementation adding more options to control which storage servers a client will use for uploads. (`#2916 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2916>`_)
     15- Added support for Python 3.12, and work with Eliot 1.15 (`#3072 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3072>`_)
     16- `tahoe run ...` will now exit when its stdin is closed.
     17
     18  This facilitates subprocess management, specifically cleanup.
     19  When a parent process is running tahoe and exits without time to do "proper" cleanup at least the stdin descriptor will be closed.
     20  Subsequently "tahoe run" notices this and exits. (`#3921 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3921>`_)
     21- Mutable objects can now be created with a pre-determined "signature key" using the ``tahoe put`` CLI or the HTTP API.  This enables deterministic creation of mutable capabilities.  This feature must be used with care to preserve the normal security and reliability properties. (`#3962 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3962>`_)
     22- Added support for Python 3.11. (`#3982 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3982>`_)
     23- tahoe run now accepts --allow-stdin-close to mean "keep running if stdin closes" (`#4036 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4036>`_)
     24- The storage server and client now support a new, HTTPS-based protocol. (`#4041 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4041>`_)
     25- Started work on a new end-to-end benchmarking framework. (`#4060 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4060>`_)
     26- Some operations now run in threads, improving the responsiveness of Tahoe nodes. (`#4068 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4068>`_)
     27- Logs are now written in a thread, which should make the application more responsive under load. (`#4804 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4804>`_)
     28
     29
     30Bug Fixes
     31---------
     32
     33- Provide better feedback from plugin configuration errors
     34
     35  Local errors now print a useful message and exit.
     36  Announcements that only contain invalid / unusable plugins now show a message in the Welcome page. (`#3899 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3899>`_)
     37- Work with (and require) newer versions of pycddl. (`#3938 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3938>`_)
     38- Uploading immutables will now better use available bandwidth, which should allow for faster uploads in many cases. (`#3939 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3939>`_)
     39- Downloads of large immutables should now finish much faster. (`#3946 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3946>`_)
     40- Fix incompatibility with transitive dependency charset_normalizer >= 3  when using PyInstaller. (`#3966 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3966>`_)
     41- A bug where Introducer nodes configured to listen on Tor or I2P would not actually do so has been fixed. (`#3999 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3999>`_)
     42- The (still off-by-default) HTTP storage client will now use Tor when Tor-based client-side anonymity was requested.
     43  Previously it would use normal TCP connections and not be anonymous. (`#4029 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4029>`_)
     44- Provide our own copy of attrs' "provides()" validator
     45
     46  This validator is deprecated and slated for removal; that project's suggestion is to copy the code to our project. (`#4056 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4056>`_)
     47- Fix a race condition with SegmentFetcher (`#4078 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4078>`_)
     48
     49
     50Dependency/Installation Changes
     51-------------------------------
     52
     53- tenacity is no longer a dependency. (`#3989 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3989>`_)
     54
     55
     56Documentation Changes
     57---------------------
     58
     59- Several minor errors in the Great Black Swamp proposed specification document have been fixed. (`#3922 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3922>`_)
     60- Document the ``force_foolscap`` configuration options for ``[storage]`` and ``[client]``. (`#4039 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4039>`_)
     61
     62
     63Removed Features
     64----------------
     65
     66- Python 3.7 is no longer supported, and Debian 10 and Ubuntu 18.04 are no longer tested. (`#3964 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3964>`_)
     67
     68
     69Other Changes
     70-------------
     71
     72- The integration test suite now includes a set of capability test vectors (``integration/vectors/test_vectors.yaml``) which can be used to verify compatibility between Tahoe-LAFS and other implementations. (`#3961 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3961>`_)
     73
     74
     75Misc/Other
     76----------
     77
     78- `#3508 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3508>`_, `#3622 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3622>`_, `#3783 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3783>`_, `#3870 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3870>`_, `#3874 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3874>`_, `#3880 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3880>`_, `#3904 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3904>`_, `#3910 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3910>`_, `#3914 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3914>`_, `#3917 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3917>`_, `#3927 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3927>`_, `#3928 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3928>`_, `#3935 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3935>`_, `#3936 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3936>`_, `#3937 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3937>`_, `#3940 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3940>`_, `#3942 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3942>`_, `#3944 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3944>`_, `#3947 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3947>`_, `#3950 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3950>`_, `#3952 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3952>`_, `#3953 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3953>`_, `#3954 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3954>`_, `#3956 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3956>`_, `#3958 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3958>`_, `#3959 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3959>`_, `#3960 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3960>`_, `#3965 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3965>`_, `#3967 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3967>`_, `#3968 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3968>`_, `#3969 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3969>`_, `#3970 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3970>`_, `#3971 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3971>`_, `#3974 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3974>`_, `#3975 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3975>`_, `#3976 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3976>`_, `#3978 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3978>`_, `#3987 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3987>`_, `#3988 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3988>`_, `#3991 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3991>`_, `#3993 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3993>`_, `#3994 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3994>`_, `#3996 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3996>`_, `#3998 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3998>`_, `#4000 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4000>`_, `#4001 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4001>`_, `#4002 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4002>`_, `#4003 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4003>`_, `#4004 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4004>`_, `#4005 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4005>`_, `#4006 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4006>`_, `#4009 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4009>`_, `#4010 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4010>`_, `#4012 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4012>`_, `#4014 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4014>`_, `#4015 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4015>`_, `#4016 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4016>`_, `#4018 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4018>`_, `#4019 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4019>`_, `#4020 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4020>`_, `#4022 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4022>`_, `#4023 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4023>`_, `#4024 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4024>`_, `#4026 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4026>`_, `#4027 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4027>`_, `#4028 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4028>`_, `#4035 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4035>`_, `#4038 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4038>`_, `#4040 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4040>`_, `#4042 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4042>`_, `#4044 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4044>`_, `#4046 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4046>`_, `#4047 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4047>`_, `#4049 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4049>`_, `#4050 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4050>`_, `#4051 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4051>`_, `#4052 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4052>`_, `#4055 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4055>`_, `#4059 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4059>`_, `#4061 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4061>`_, `#4062 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4062>`_, `#4063 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4063>`_, `#4065 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4065>`_, `#4066 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4066>`_, `#4070 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4070>`_, `#4074 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4074>`_, `#4075 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4075>`_
     79
     80
    881Release 1.18.0 (2022-10-02)
    982'''''''''''''''''''''''''''
  • TabularUnified docs/release-checklist.rst

    r2783bd8 r0f596fb  
    148148- when satisfied, sign the tarballs:
    149149
    150   - gpg --pinentry=loopback --armor --detach-sign dist/tahoe_lafs-1.16.0rc0-py2.py3-none-any.whl
     150  - gpg --pinentry=loopback --armor -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A --detach-sign dist/tahoe_lafs-1.16.0rc0-py2.py3-none-any.whl
    151151  - gpg --pinentry=loopback --armor --detach-sign dist/tahoe_lafs-1.16.0rc0.tar.gz
    152152
     
    198198uploaded to PyPI as well.
    199199
    200 - how to do this?
    201 - (original guide says only `twine upload dist/*`)
    202 - the following developers have access to do this:
     200- ls dist/*1.19.0*
     201- twine upload --username __token__ --password `cat SECRET-pypi-tahoe-publish-token` dist/*1.19.0*
     202
     203The following developers have access to do this:
    203204
    204205  - warner
     206  - meejah
    205207  - exarkun (partial?)
    206   - meejah (partial?)
     208
    207209
    208210Announcing the Release Candidate
  • TabularUnified integration/test_aaa_aardvark.py

    r2783bd8 r0f596fb  
    66# longer" to start the first test as the fixtures get built
    77
    8 from __future__ import unicode_literals
    9 from __future__ import absolute_import
    10 from __future__ import division
    11 from __future__ import print_function
    128
    139from future.utils import PY2
  • TabularUnified integration/test_sftp.py

    r2783bd8 r0f596fb  
    1111"""
    1212
    13 from __future__ import unicode_literals
    14 from __future__ import absolute_import
    15 from __future__ import division
    16 from __future__ import print_function
    1713
    1814from future.utils import PY2
  • TabularUnified integration/test_streaming_logs.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import (
    5     print_function,
    6     unicode_literals,
    7     absolute_import,
    8     division,
    9 )
    104
    115from future.utils import PY2
  • TabularUnified misc/awesome_weird_stuff/boodlegrid.tac

    r2783bd8 r0f596fb  
    11# -*- python -*-
    22
    3 from __future__ import print_function
    43
    54"""Monitor a Tahoe grid, by playing sounds in response to remote events.
  • TabularUnified misc/build_helpers/check-build.py

    r2783bd8 r0f596fb  
    33# This helper script is used with the 'test-desert-island' Makefile target.
    44
    5 from __future__ import print_function
    65
    76import sys
  • TabularUnified misc/build_helpers/gen-package-table.py

    r2783bd8 r0f596fb  
    33# It expects to be run in the tahoe-lafs-dep-eggs directory.
    44
    5 from __future__ import print_function
    65
    76import re, os, sys
  • TabularUnified misc/build_helpers/run-deprecations.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32import sys, os, io, re
  • TabularUnified misc/build_helpers/test-osx-pkg.py

    r2783bd8 r0f596fb  
    3030# pyasn1-modules: 0.0.5 (/Applications/tahoe.app/support/lib/python2.7/site-packages/pyasn1_modules-0.0.5-py2.7.egg)
    3131
    32 from __future__ import print_function
    3332
    3433import os, re, shutil, subprocess, sys, tempfile
  • TabularUnified misc/checkers/check_grid.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32"""
  • TabularUnified misc/coding_tools/check-debugging.py

    r2783bd8 r0f596fb  
    99"""
    1010
    11 from __future__ import print_function
    1211
    1312import sys, re, os
  • TabularUnified misc/coding_tools/check-interfaces.py

    r2783bd8 r0f596fb  
    55#   bin/tahoe @misc/coding_tools/check-interfaces.py
    66
    7 from __future__ import print_function
    87
    98import os, sys, re, platform
  • TabularUnified misc/coding_tools/check-umids.py

    r2783bd8 r0f596fb  
    99# ./check-umids.py src
    1010
    11 from __future__ import print_function
    1211
    1312import sys, re, os
  • TabularUnified misc/coding_tools/graph-deps.py

    r2783bd8 r0f596fb  
    2222# wheels can be built with py3.
    2323
    24 from __future__ import unicode_literals, print_function
    2524import os, sys, subprocess, json, tempfile, zipfile, re, itertools
    2625import email.parser
  • TabularUnified misc/coding_tools/make-canary-files.py

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54"""
  • TabularUnified misc/coding_tools/make_umid

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54"""Create a short probably-unique string for use as a umid= argument in a
  • TabularUnified misc/operations_helpers/cpu-watcher-poll.py

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54from foolscap import Tub, eventual
  • TabularUnified misc/operations_helpers/cpu-watcher-subscribe.py

    r2783bd8 r0f596fb  
    11# -*- python -*-
    22
    3 from __future__ import print_function
    43
    54from twisted.internet import reactor
  • TabularUnified misc/operations_helpers/cpu-watcher.tac

    r2783bd8 r0f596fb  
    11# -*- python -*-
    22
    3 from __future__ import print_function
    43
    54"""
  • TabularUnified misc/operations_helpers/find-share-anomalies.py

    r2783bd8 r0f596fb  
    33# feed this the results of 'tahoe catalog-shares' for all servers
    44
    5 from __future__ import print_function
    65
    76import sys
  • TabularUnified misc/operations_helpers/munin/tahoe_cpu_watcher

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os, sys, re
  • TabularUnified misc/operations_helpers/munin/tahoe_diskleft

    r2783bd8 r0f596fb  
    66# env_url= pointing at the diskwatcher.tac webport.
    77
    8 from __future__ import print_function
    98
    109import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_disktotal

    r2783bd8 r0f596fb  
    77# diskwatcher.tac webport.
    88
    9 from __future__ import print_function
    109
    1110import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_diskusage

    r2783bd8 r0f596fb  
    66# pointing at the diskwatcher.tac webport.
    77
    8 from __future__ import print_function
    98
    109import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_diskused

    r2783bd8 r0f596fb  
    66# env_url= pointing at the diskwatcher.tac webport.
    77
    8 from __future__ import print_function
    98
    109import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_doomsday

    r2783bd8 r0f596fb  
    66# env_url= pointing at the diskwatcher.tac webport.
    77
    8 from __future__ import print_function
    98
    109import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_estimate_files

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import sys, os.path
  • TabularUnified misc/operations_helpers/munin/tahoe_files

    r2783bd8 r0f596fb  
    1919#
    2020
    21 from __future__ import print_function
    2221
    2322import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_helperstats_active

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_helperstats_fetched

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_introstats

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_nodememory

    r2783bd8 r0f596fb  
    55# VmSize and VmRSS) from /proc
    66
    7 from __future__ import print_function
    87
    98import os, sys, re
  • TabularUnified misc/operations_helpers/munin/tahoe_overhead

    r2783bd8 r0f596fb  
    2828# diskwatcher.tac webport, and env_deepsize_url= pointing at the PHP script.
    2929
    30 from __future__ import print_function
    3130
    3231import os, sys, urllib, json
  • TabularUnified misc/operations_helpers/munin/tahoe_rootdir_space

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_server_latency_

    r2783bd8 r0f596fb  
    4343# storage nodes.
    4444
    45 from __future__ import print_function
    4645
    4746import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_server_operations_

    r2783bd8 r0f596fb  
    3333# storage nodes.
    3434
    35 from __future__ import print_function
    3635
    3736import os, sys
  • TabularUnified misc/operations_helpers/munin/tahoe_spacetime

    r2783bd8 r0f596fb  
    66# have left, and output it to another munin graph
    77
    8 from __future__ import print_function
    98
    109import sys, os, time
  • TabularUnified misc/operations_helpers/munin/tahoe_stats

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import os
  • TabularUnified misc/operations_helpers/munin/tahoe_storagespace

    r2783bd8 r0f596fb  
    1919# since it imports a utility module from allmydata.utils .
    2020
    21 from __future__ import print_function
    2221
    2322import os, sys
  • TabularUnified misc/operations_helpers/provisioning/reliability.py

    r2783bd8 r0f596fb  
    11#! /usr/bin/python
    22
    3 from __future__ import print_function
    43
    54import math
  • TabularUnified misc/operations_helpers/provisioning/test_provisioning.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32import unittest
  • TabularUnified misc/operations_helpers/spacetime/diskwatcher.tac

    r2783bd8 r0f596fb  
    11# -*- python -*-
    22
    3 from __future__ import print_function
    43
    54"""
  • TabularUnified misc/simulators/bench_spans.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32"""
  • TabularUnified misc/simulators/count_dirs.py

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54"""
  • TabularUnified misc/simulators/hashbasedsig.py

    r2783bd8 r0f596fb  
    11#!python
    22
    3 from __future__ import print_function
    43
    54# range of hash output lengths
  • TabularUnified misc/simulators/ringsim.py

    r2783bd8 r0f596fb  
    55# import time
    66
    7 from __future__ import print_function
    87
    98import math
  • TabularUnified misc/simulators/simulate_load.py

    r2783bd8 r0f596fb  
    33# WARNING. There is a bug in this script so that it does not simulate the actual Tahoe Two server selection algorithm that it was intended to simulate. See http://allmydata.org/trac/tahoe-lafs/ticket/302 (stop permuting peerlist, use SI as offset into ring instead?)
    44
    5 from __future__ import print_function
    65
    76from past.builtins import cmp
  • TabularUnified misc/simulators/simulator.py

    r2783bd8 r0f596fb  
    11#! /usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import hashlib
  • TabularUnified misc/simulators/sizes.py

    r2783bd8 r0f596fb  
    11#! /usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54from future.utils import PY2
  • TabularUnified misc/simulators/storage-overhead.py

    r2783bd8 r0f596fb  
    11#!/usr/bin/env python
    22
    3 from __future__ import print_function
    43
    54import sys, math
  • TabularUnified nix/pycddl.nix

    r2783bd8 r0f596fb  
    3131buildPythonPackage rec {
    3232  pname = "pycddl";
    33   version = "0.4.0";
     33  version = "0.6.1";
    3434  format = "pyproject";
    3535
    3636  src = fetchPypi {
    3737    inherit pname version;
    38     sha256 = "sha256-w0CGbPeiXyS74HqZXyiXhvaAMUaIj5onwjl9gWKAjqY=";
     38    sha256 = "sha256-63fe8UJXEH6t4l7ujV8JDvlGb7q3kL6fHHATFdklzFc=";
    3939  };
    4040
     
    5353    inherit src;
    5454    name = "${pname}-${version}";
    55     hash = "sha256-g96eeaqN9taPED4u+UKUcoitf5aTGFrW2/TOHoHEVHs=";
     55    hash = "sha256-ssDEKRd3Y9/10oXBZHCxvlRkl9KMh3pGYbCkM4rXThQ=";
    5656  };
    5757}
  • TabularUnified nix/tahoe-lafs.nix

    r2783bd8 r0f596fb  
    11let
    22  pname = "tahoe-lafs";
    3   version = "1.18.0.post1";
     3  version = "1.19.0.post1";
    44in
    55{ lib
  • TabularUnified pyinstaller.spec

    r2783bd8 r0f596fb  
    11# -*- mode: python -*-
    22
    3 from __future__ import print_function
    43
    54from distutils.sysconfig import get_python_lib
  • TabularUnified relnotes.txt

    r2783bd8 r0f596fb  
    1 ANNOUNCING Tahoe, the Least-Authority File Store, v1.18.0
     1ANNOUNCING Tahoe, the Least-Authority File Store, v1.19.0
    22
    3 The Tahoe-LAFS team is pleased to announce version 1.18.0 of
     3The Tahoe-LAFS team is pleased to announce version 1.19.0 of
    44Tahoe-LAFS, an extremely reliable decentralized storage
    55system. Get it with "pip install tahoe-lafs", or download a
     
    1616  https://tahoe-lafs.readthedocs.org/en/latest/about.html
    1717
    18 The previous stable release of Tahoe-LAFS was v1.17.1, released on
    19 January 7, 2022.
     18The previous stable release of Tahoe-LAFS was v1.18.0, released on
     19October 2, 2022. Major new features and changes in this release:
    2020
    21 This release drops support for Python 2 and for Python 3.6 and earlier.
    22 twistd.pid is no longer used (in favour of one with pid + process creation time).
    23 A collection of minor bugs and issues were also fixed.
     21A new "Grid Manager" feature allows clients to specify any number of
     22parties whom they will use to limit which storage-server that client
     23talks to. See docs/managed-grid.rst for more.
     24
     25The new HTTP-based "Great Black Swamp" protocol is now enabled
     26(replacing Foolscap). This allows integrators to start with their
     27favourite HTTP library (instead of implementing Foolscap first). Both
     28storage-servers and clients support this new protocol.
     29
     30`tahoe run` will now exit if its stdin is closed (but accepts --allow-stdin-close now).
     31
     32Mutables may be created with a pre-determined signature key; care must
     33be taken!
     34
     35This release drops Python 3.7 support and adds Python 3.11 and 3.12
     36support. Several performance improvements have been made. Introducer
     37correctly listens on Tor or I2P. Debian 10 and Ubuntu 20.04 are no
     38longer tested.
     39
     40Besides all this there have been dozens of other bug-fixes and
     41improvements.
     42
     43Enjoy!
    2444
    2545Please see ``NEWS.rst`` [1] for a complete list of changes.
     
    146166
    147167
    148 [1] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.18.0/NEWS.rst
     168[1] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.19.0/NEWS.rst
    149169[2] https://github.com/tahoe-lafs/tahoe-lafs/blob/master/docs/known_issues.rst
    150170[3] https://tahoe-lafs.org/trac/tahoe-lafs/wiki/RelatedProjects
    151 [4] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.18.0/COPYING.GPL
    152 [5] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.18.0/COPYING.TGPPL.rst
    153 [6] https://tahoe-lafs.readthedocs.org/en/tahoe-lafs-1.18.0/INSTALL.html
     171[4] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.19.0/COPYING.GPL
     172[5] https://github.com/tahoe-lafs/tahoe-lafs/blob/tahoe-lafs-1.19.0/COPYING.TGPPL.rst
     173[6] https://tahoe-lafs.readthedocs.org/en/tahoe-lafs-1.19.0/INSTALL.html
    154174[7] https://lists.tahoe-lafs.org/mailman/listinfo/tahoe-dev
    155175[8] https://tahoe-lafs.org/trac/tahoe-lafs/roadmap
  • TabularUnified setup.py

    r2783bd8 r0f596fb  
    144144    "werkzeug != 2.2.0",
    145145    "treq",
    146     "cbor2",
    147 
    148     # 0.4 adds the ability to pass in mmap() values which greatly reduces the
    149     # amount of copying involved.
    150     "pycddl >= 0.4",
     146    # 5.6.0 excluded because https://github.com/agronholm/cbor2/issues/208
     147    "cbor2 != 5.6.0",
     148
     149    # 0.6 adds the ability to decode CBOR. 0.6.1 fixes PyPy.
     150    "pycddl >= 0.6.1",
    151151
    152152    # Command-line parsing
  • TabularUnified src/allmydata/__main__.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/_monkeypatch.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/blacklist.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/check_results.py

    r2783bd8 r0f596fb  
    11"""Ported to Python 3.
    22"""
    3 from __future__ import absolute_import
    4 from __future__ import division
    5 from __future__ import print_function
    6 from __future__ import unicode_literals
    73
    84from future.utils import PY2
  • TabularUnified src/allmydata/codec.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/crypto/__init__.py

    r2783bd8 r0f596fb  
    1010"""
    1111
    12 from __future__ import unicode_literals
    13 from __future__ import absolute_import
    14 from __future__ import division
    15 from __future__ import print_function
    1612
    1713from future.utils import PY2
  • TabularUnified src/allmydata/crypto/aes.py

    r2783bd8 r0f596fb  
    1010Ported to Python 3.
    1111"""
    12 from __future__ import absolute_import
    13 from __future__ import division
    14 from __future__ import print_function
    15 from __future__ import unicode_literals
    1612
    1713from future.utils import PY2
  • TabularUnified src/allmydata/crypto/error.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/crypto/util.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/deep_stats.py

    r2783bd8 r0f596fb  
    33Ported to Python 3.
    44"""
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/dirnode.py

    r2783bd8 r0f596fb  
    33Ported to Python 3.
    44"""
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/frontends/auth.py

    r2783bd8 r0f596fb  
    22Authentication for frontends.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/frontends/sftpd.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/hashtree.py

    r2783bd8 r0f596fb  
    5050"""
    5151
    52 from __future__ import absolute_import
    53 from __future__ import division
    54 from __future__ import print_function
    55 from __future__ import unicode_literals
    5652
    5753from future.utils import PY2
  • TabularUnified src/allmydata/history.py

    r2783bd8 r0f596fb  
    11"""Ported to Python 3.
    22"""
    3 from __future__ import absolute_import
    4 from __future__ import division
    5 from __future__ import print_function
    6 from __future__ import unicode_literals
    73
    84from future.utils import PY2
  • TabularUnified src/allmydata/immutable/checker.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/__init__.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/common.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/fetcher.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import print_function
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
     
    6460
    6561    def stop(self):
    66         log.msg("SegmentFetcher(%r).stop" % self._node._si_prefix,
    67                 level=log.NOISY, parent=self._lp, umid="LWyqpg")
    68         self._cancel_all_requests()
    69         self._running = False
    70         # help GC ??? XXX
    71         del self._shares, self._shares_from_server, self._active_share_map
    72         del self._share_observers
     62        if self._running:
     63            log.msg("SegmentFetcher(%r).stop" % self._node._si_prefix,
     64                    level=log.NOISY, parent=self._lp, umid="LWyqpg")
     65            self._cancel_all_requests()
     66            self._running = False
     67            # help GC ???
     68            del self._shares, self._shares_from_server, self._active_share_map
     69            del self._share_observers
    7370
    7471
  • TabularUnified src/allmydata/immutable/downloader/finder.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/node.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
     
    133129        # called by the Terminator at shutdown, mostly for tests
    134130        if self._active_segment:
    135             self._active_segment.stop()
    136             self._active_segment = None
     131            seg, self._active_segment = self._active_segment, None
     132            seg.stop()
    137133        self._sharefinder.stop()
    138134
     
    411407    def fetch_failed(self, sf, f):
    412408        assert sf is self._active_segment
     409        self._active_segment = None
    413410        # deliver error upwards
    414411        for (d,c,seg_ev) in self._extract_requests(sf.segnum):
    415412            seg_ev.error(now())
    416413            eventually(self._deliver, d, c, f)
    417         self._active_segment = None
    418414        self._start_new_segment()
    419415
     
    435431            else:
    436432                (offset, segment, decodetime) = result
     433                self._active_segment = None
    437434                for (d,c,seg_ev) in self._extract_requests(segnum):
    438435                    # when we have two requests for the same segment, the
     
    447444                    eventually(self._deliver, d, c, result)
    448445            self._download_status.add_misc_event("process_block", start, now())
    449             self._active_segment = None
    450446            self._start_new_segment()
    451447        d.addBoth(_deliver)
     
    534530                                  if t[2] != cancel]
    535531        segnums = [segnum for (segnum,d,c,seg_ev,lp) in self._segment_requests]
     532
    536533        # self._active_segment might be None in rare circumstances, so make
    537534        # sure we tolerate it
    538535        if self._active_segment and self._active_segment.segnum not in segnums:
    539             self._active_segment.stop()
    540             self._active_segment = None
     536            seg, self._active_segment = self._active_segment, None
     537            seg.stop()
    541538            self._start_new_segment()
    542539
  • TabularUnified src/allmydata/immutable/downloader/segmentation.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/share.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/downloader/status.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import division
    5 from __future__ import absolute_import
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/encode.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import division
    8 from __future__ import absolute_import
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/immutable/filenode.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/immutable/happiness_upload.py

    r2783bd8 r0f596fb  
    55Ported to Python 3.
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/immutable/literal.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/immutable/offloaded.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/immutable/repairer.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/interfaces.py

    r2783bd8 r0f596fb  
    66Note that for RemoteInterfaces, the __remote_name__ needs to be a native string because of https://github.com/warner/foolscap/blob/43f4485a42c9c28e2c79d655b3a9e24d4e6360ca/src/foolscap/remoteinterface.py#L67
    77"""
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    11 from __future__ import unicode_literals
    128
    139from future.utils import PY2, native_str
  • TabularUnified src/allmydata/introducer/__init__.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/introducer/client.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/introducer/common.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/introducer/interfaces.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2, native_str
  • TabularUnified src/allmydata/monitor.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/mutable/checker.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/mutable/layout.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/mutable/publish.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import division
    5 from __future__ import absolute_import
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/mutable/repairer.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/admin.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/backupdb.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/default_nodedir.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/scripts/slow_operation.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2, PY3
  • TabularUnified src/allmydata/scripts/tahoe_add_alias.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_backup.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_check.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_cp.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_get.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2, PY3
  • TabularUnified src/allmydata/scripts/tahoe_ls.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_manifest.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2, PY3
  • TabularUnified src/allmydata/scripts/tahoe_mkdir.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_mv.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_run.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_status.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_unlink.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/scripts/tahoe_webopen.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/storage/common.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import unicode_literals
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    84
    95from future.utils import PY2, PY3
  • TabularUnified src/allmydata/storage/crawler.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2, PY3
  • TabularUnified src/allmydata/storage/expirer.py

    r2783bd8 r0f596fb  
    1 from __future__ import division
    2 from __future__ import absolute_import
    3 from __future__ import print_function
    4 from __future__ import unicode_literals
    51
    62from future.utils import PY2
  • TabularUnified src/allmydata/storage/http_client.py

    r2783bd8 r0f596fb  
    2727from eliot.twisted import DeferredContext
    2828
    29 # TODO Make sure to import Python version?
    30 from cbor2 import loads, dumps
    3129from pycddl import Schema
    3230from collections_extended import RangeMap
     
    6664from ..util.tor_provider import _Provider as TorProvider
    6765from ..util.cputhreadpool import defer_to_thread
     66from ..util.cbor import dumps
    6867
    6968try:
     
    562561
    563562                    def validate_and_decode():
    564                         schema.validate_cbor(data)
    565                         return loads(data)
     563                        return schema.validate_cbor(data, True)
    566564
    567565                    return await defer_to_thread(validate_and_decode)
  • TabularUnified src/allmydata/storage/http_server.py

    r2783bd8 r0f596fb  
    5858
    5959
    60 # TODO Make sure to use pure Python versions?
    61 import cbor2
    6260from pycddl import Schema, ValidationError as CDDLValidationError
    6361from .server import StorageServer
     
    7674from ..util.deferredutil import async_to_deferred
    7775from ..util.cputhreadpool import defer_to_thread
    78 from allmydata.interfaces import BadWriteEnablerError
     76from ..util import cbor
     77from ..interfaces import BadWriteEnablerError
    7978
    8079
     
    639638    # Pycddl will release the GIL when validating larger documents, so
    640639    # let's take advantage of multiple CPUs:
    641     await defer_to_thread(schema.validate_cbor, message)
    642 
    643     # The CBOR parser will allocate more memory, but at least we can feed
    644     # it the file-like object, so that if it's large it won't be make two
    645     # copies.
    646     request.content.seek(SEEK_SET, 0)
    647     # Typically deserialization to Python will not release the GIL, and
    648     # indeed as of Jan 2023 cbor2 didn't have any code to release the GIL
    649     # in the decode path. As such, running it in a different thread has no benefit.
    650     return cbor2.load(request.content)
    651 
     640    decoded = await defer_to_thread(schema.validate_cbor, message, True)
     641    return decoded
    652642
    653643class HTTPServer(BaseApp):
     
    696686            request.setHeader("Content-Type", CBOR_MIME_TYPE)
    697687            f = TemporaryFile()
    698             cbor2.dump(data, f)  # type: ignore
     688            cbor.dump(data, f)  # type: ignore
    699689
    700690            def read_data(offset: int, length: int) -> bytes:
  • TabularUnified src/allmydata/storage/immutable.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2, bytes_to_native_str
  • TabularUnified src/allmydata/storage/immutable_schema.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/storage/lease.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/storage/mutable.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/storage/mutable_schema.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/storage/shares.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/storage_client.py

    r2783bd8 r0f596fb  
    3333from __future__ import annotations
    3434
    35 from typing import Union, Callable, Any, Optional, cast, Dict
     35from typing import Union, Callable, Any, Optional, cast, Dict, Iterable
    3636from os import urandom
    3737import re
     
    140140        signed by at least one of these keys.
    141141    """
    142     preferred_peers = attr.ib(default=())
    143     storage_plugins = attr.ib(default=attr.Factory(dict))
    144     grid_manager_keys = attr.ib(default=attr.Factory(list))
     142    preferred_peers : Iterable[bytes] = attr.ib(default=())
     143    storage_plugins : dict[str, dict[str, str]] = attr.ib(default=attr.Factory(dict))
     144    grid_manager_keys : list[ed25519.Ed25519PublicKey] = attr.ib(default=attr.Factory(list))
    145145
    146146    @classmethod
     
    11081108        reactor,
    11091109        nurls: list[DecodedURL],
    1110         request: Callable[[Any, DecodedURL], defer.Deferred[Any]]
     1110        request: Callable[[object, DecodedURL], defer.Deferred[object]]
    11111111) -> DecodedURL:
    11121112    """Pick the first server we successfully send a request to.
     
    11151115    the first successfully-connected server.
    11161116    """
    1117     queries = race([
    1118         request(reactor, nurl).addCallback(lambda _, nurl=nurl: nurl)
    1119         for nurl in nurls
    1120     ])
    1121 
     1117    requests = []
     1118    for nurl in nurls:
     1119        def to_nurl(_: object, nurl: DecodedURL=nurl) -> DecodedURL:
     1120            return nurl
     1121
     1122        requests.append(request(reactor, nurl).addCallback(to_nurl))
     1123
     1124    queries: defer.Deferred[tuple[int, DecodedURL]] = race(requests)
    11221125    _, nurl = await queries
    11231126    return nurl
  • TabularUnified src/allmydata/test/__init__.py

    r2783bd8 r0f596fb  
    1616Ported to Python 3.
    1717"""
    18 from __future__ import absolute_import
    19 from __future__ import division
    20 from __future__ import print_function
    21 from __future__ import unicode_literals
    2218
    2319from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/common.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_admin.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_alias.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_backup.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_backupdb.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_check.py

    r2783bd8 r0f596fb  
    1 from __future__ import absolute_import
    2 from __future__ import division
    3 from __future__ import print_function
    4 from __future__ import unicode_literals
    51
    62from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_cli.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_cp.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_create_alias.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_list.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2, PY3
  • TabularUnified src/allmydata/test/cli/test_mv.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli/test_run.py

    r2783bd8 r0f596fb  
    265265        self.assertThat(result_code, Equals(1))
    266266
    267     good_file_content_re = re.compile(r"\s[0-9]*\s[0-9]*\s", re.M)
     267    good_file_content_re = re.compile(r"\s*[0-9]*\s[0-9]*\s*", re.M)
    268268
    269269    @given(text())
  • TabularUnified src/allmydata/test/cli/test_status.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/cli_node_api.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/common.py

    r2783bd8 r0f596fb  
    178178    cache_filepath = attr.ib()
    179179
    180     subscribed_to = attr.ib(default=attr.Factory(list))
    181     published_announcements = attr.ib(default=attr.Factory(list))
     180    subscribed_to : list[Subscription] = attr.ib(default=attr.Factory(list))
     181    published_announcements : list[Announcement] = attr.ib(default=attr.Factory(list))
    182182
    183183
     
    289289    introducer_furl = attr.ib(validator=attr.validators.instance_of(str),
    290290                              converter=six.ensure_str)
    291     node_config = attr.ib(default=attr.Factory(dict))
     291    node_config : dict[bytes,bytes] = attr.ib(default=attr.Factory(dict))
    292292
    293293    config = attr.ib(default=None)
  • TabularUnified src/allmydata/test/common_system.py

    r2783bd8 r0f596fb  
    701701
    702702    def _got_new_http_connection_pool(self, pool):
     703        # Make sure the pool closes cached connections quickly:
     704        pool.cachedConnectionTimeout = 0.1
    703705        # Register the pool for shutdown later:
    704706        self._http_client_pools.append(pool)
  • TabularUnified src/allmydata/test/common_util.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2, PY3, bchr, binary_type
  • TabularUnified src/allmydata/test/common_web.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/matchers.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_checker.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_datahandle.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_different_encoding.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_exceptions.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_filehandle.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_filenode.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_interoperability.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_multiple_encodings.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_multiple_versions.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_problems.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_repair.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_roundtrip.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_servermap.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/test_update.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import division
    6 from __future__ import absolute_import
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/mutable/util.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2, bchr
  • TabularUnified src/allmydata/test/storage_plugin.py

    r2783bd8 r0f596fb  
    55Ported to Python 3.
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/strategies.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_abbreviate.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_base32.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_base62.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_checker.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/test_codec.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_common_util.py

    r2783bd8 r0f596fb  
    22This module has been ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_configutil.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_connections.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_consumer.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_crawler.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import print_function
    8 from __future__ import division
    9 from __future__ import absolute_import
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2, PY3
  • TabularUnified src/allmydata/test/test_crypto.py

    r2783bd8 r0f596fb  
    1 from __future__ import absolute_import
    2 from __future__ import division
    3 from __future__ import print_function
    4 from __future__ import unicode_literals
    51
    62from future.utils import PY2
  • TabularUnified src/allmydata/test/test_deepcheck.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95# Python 2 compatibility
  • TabularUnified src/allmydata/test/test_dirnode.py

    r2783bd8 r0f596fb  
    33Ported to Python 3.
    44"""
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from past.builtins import long
  • TabularUnified src/allmydata/test/test_eliotutil.py

    r2783bd8 r0f596fb  
    11"""
    22Tests for ``allmydata.util.eliotutil``.
    3 
    4 Ported to Python 3.
    53"""
    6 
    7 from __future__ import (
    8     unicode_literals,
    9     print_function,
    10     absolute_import,
    11     division,
    12 )
    13 
    14 from future.utils import PY2
    15 if PY2:
    16     from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min  # noqa: F401
    174
    185from sys import stdout
     
    6855    _EliotLogging,
    6956)
     57from ..util.deferredutil import async_to_deferred
    7058
    7159from .common import (
     
    215203
    216204
    217 # Opt out of the great features of common.SyncTestCase because we're
    218 # interacting with Eliot in a very obscure, particular, fragile way. :/
    219 class EliotLoggingTests(TestCase):
     205# We need AsyncTestCase because logging happens in a thread tied to the
     206# reactor.
     207class EliotLoggingTests(AsyncTestCase):
    220208    """
    221209    Tests for ``_EliotLogging``.
    222210    """
    223     def test_stdlib_event_relayed(self):
     211    @async_to_deferred
     212    async def test_stdlib_event_relayed(self):
    224213        """
    225214        An event logged using the stdlib logging module is delivered to the Eliot
     
    229218        service = _EliotLogging([collected.append])
    230219        service.startService()
    231         self.addCleanup(service.stopService)
    232 
    233         # The first destination added to the global log destinations gets any
    234         # buffered messages delivered to it.  We don't care about those.
    235         # Throw them on the floor.  Sorry.
    236         del collected[:]
    237220
    238221        logging.critical("oh no")
    239         self.assertThat(
    240             collected,
    241             AfterPreprocessing(
    242                 len,
    243                 Equals(1),
    244             ),
    245         )
    246 
    247     def test_twisted_event_relayed(self):
     222        await service.stopService()
     223
     224        self.assertTrue(
     225            "oh no" in str(collected[-1]), collected
     226        )
     227
     228    @async_to_deferred
     229    async def test_twisted_event_relayed(self):
    248230        """
    249231        An event logged with a ``twisted.logger.Logger`` is delivered to the Eliot
     
    253235        service = _EliotLogging([collected.append])
    254236        service.startService()
    255         self.addCleanup(service.stopService)
    256237
    257238        from twisted.logger import Logger
    258239        Logger().critical("oh no")
    259         self.assertThat(
    260             collected,
    261             AfterPreprocessing(
    262                 len, Equals(1),
    263             ),
     240        await service.stopService()
     241
     242        self.assertTrue(
     243            "oh no" in str(collected[-1]), collected
    264244        )
    265245
     
    317297            Is(expected),
    318298        )
    319 
    320299
    321300
  • TabularUnified src/allmydata/test/test_encode.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import division
    5 from __future__ import absolute_import
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_encodingutil.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    2 from __future__ import absolute_import
    3 from __future__ import division
    4 from __future__ import unicode_literals
    51
    62from future.utils import PY2, PY3
  • TabularUnified src/allmydata/test/test_filenode.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_happiness.py

    r2783bd8 r0f596fb  
    77"""
    88
    9 from __future__ import absolute_import
    10 from __future__ import division
    11 from __future__ import print_function
    12 from __future__ import unicode_literals
    139
    1410from future.utils import PY2
  • TabularUnified src/allmydata/test/test_hashutil.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_humanreadable.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2
     
    3228    def test_repr(self):
    3329        hr = humanreadable.hr
    34         self.failUnlessEqual(hr(foo), "<foo() at test_humanreadable.py:24>")
     30        self.failUnlessEqual(hr(foo), "<foo() at test_humanreadable.py:20>")
    3531        self.failUnlessEqual(hr(self.test_repr),
    3632                             "<bound method HumanReadable.test_repr of <allmydata.test.test_humanreadable.HumanReadable testMethod=test_repr>>")
  • TabularUnified src/allmydata/test/test_hung_server.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_i2p_provider.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_immutable.py

    r2783bd8 r0f596fb  
    22This module has been ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_introducer.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_json_metadata.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_log.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2, native_str
  • TabularUnified src/allmydata/test/test_monitor.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/test_multi_introducers.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_netstring.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_no_network.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_observer.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_openmetrics.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import print_function
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_python2_regressions.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import unicode_literals
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/test_repairer.py

    r2783bd8 r0f596fb  
    33Ported to Python 3.
    44"""
    5 from __future__ import print_function
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/test_runner.py

    r2783bd8 r0f596fb  
    22Ported to Python 3
    33"""
    4 
    5 from __future__ import (
    6     absolute_import,
    7 )
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    114
    125from future.utils import PY2
  • TabularUnified src/allmydata/test/test_sftp.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_spans.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import print_function
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/test_statistics.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_stats.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_storage_client.py

    r2783bd8 r0f596fb  
    4242from twisted.internet.interfaces import (
    4343    IStreamClientEndpoint,
     44    IProtocolFactory,
    4445)
    4546from twisted.application.service import (
     
    605606        was passed to ``connect``.
    606607    """
    607     _connects = attr.ib(default=attr.Factory(list))
     608    _connects : list[tuple[Deferred[object], IProtocolFactory]]= attr.ib(default=attr.Factory(list))
    608609
    609610    def hint_to_endpoint(self, hint, reactor, update_status):
  • TabularUnified src/allmydata/test/test_storage_http.py

    r2783bd8 r0f596fb  
    2525from typing import Union, Callable, Tuple, Iterable
    2626from queue import Queue
    27 from cbor2 import dumps
    2827from pycddl import ValidationError as CDDLValidationError
    2928from hypothesis import assume, given, strategies as st, settings as hypothesis_settings
     
    4342from zope.interface import implementer
    4443
     44from ..util.cbor import dumps
    4545from ..util.deferredutil import async_to_deferred
    4646from ..util.cputhreadpool import disable_thread_pool_for_test
  • TabularUnified src/allmydata/test/test_storage_web.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_time_format.py

    r2783bd8 r0f596fb  
    22Tests for allmydata.util.time_format.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/test_upload.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import unicode_literals
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/test_uri.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/test/test_util.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import print_function
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/test/web/common.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/web/matchers.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_common.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_grid.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import print_function
    5 from __future__ import absolute_import
    6 from __future__ import division
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_introducer.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_logs.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 
    7 from __future__ import (
    8     print_function,
    9     unicode_literals,
    10     absolute_import,
    11     division,
    12 )
    136
    147from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_private.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 
    7 from __future__ import (
    8     print_function,
    9     unicode_literals,
    10     absolute_import,
    11     division,
    12 )
    136
    147from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_root.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_status.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/test/web/test_util.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/testing/web.py

    r2783bd8 r0f596fb  
    1515
    1616import hashlib
     17from typing import Iterable
    1718
    1819import attr
     
    142143
    143144    data: BytesKeyDict = attr.ib(default=attr.Factory(BytesKeyDict))
    144     capability_generators = attr.ib(default=attr.Factory(dict))
     145    capability_generators: dict[bytes,Iterable[bytes]] = attr.ib(default=attr.Factory(dict))
    145146
    146147    def _generate_capability(self, kind):
  • TabularUnified src/allmydata/unknown.py

    r2783bd8 r0f596fb  
    11"""Ported to Python 3.
    22"""
    3 from __future__ import absolute_import
    4 from __future__ import division
    5 from __future__ import print_function
    6 from __future__ import unicode_literals
    73
    84from future.utils import PY2
  • TabularUnified src/allmydata/util/abbreviate.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import division
    7 from __future__ import absolute_import
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/util/assertutil.py

    r2783bd8 r0f596fb  
    88"""
    99
    10 from __future__ import division
    11 from __future__ import absolute_import
    12 from __future__ import print_function
    13 from __future__ import unicode_literals
    1410
    1511from future.utils import PY2
  • TabularUnified src/allmydata/util/base62.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/util/configutil.py

    r2783bd8 r0f596fb  
    66Ported to Python 3.
    77"""
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    11 from __future__ import unicode_literals
    128
    139from future.utils import PY2
  • TabularUnified src/allmydata/util/consumer.py

    r2783bd8 r0f596fb  
    55Ported to Python 3.
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/dbutil.py

    r2783bd8 r0f596fb  
    77"""
    88
    9 from __future__ import absolute_import
    10 from __future__ import division
    11 from __future__ import print_function
    12 from __future__ import unicode_literals
    139
    1410from future.utils import PY2
  • TabularUnified src/allmydata/util/eliotutil.py

    r2783bd8 r0f596fb  
    3737    provides,
    3838)
    39 
     39from twisted.internet import reactor
    4040from eliot import (
    4141    ILogger,
    4242    Message,
    4343    FileDestination,
    44     add_destinations,
    45     remove_destination,
    4644    write_traceback,
    4745    start_action,
     
    5957    inline_callbacks,
    6058)
     59from eliot.logwriter import ThreadedWriter
    6160from twisted.python.usage import (
    6261    UsageError,
     
    7675    maybeDeferred,
    7776)
    78 from twisted.application.service import Service
     77from twisted.application.service import MultiService
    7978
    8079from .jsonbytes import AnyBytesJSONEncoder
     
    145144
    146145
    147 class _EliotLogging(Service):
     146class _EliotLogging(MultiService):
    148147    """
    149148    A service which adds stdout as an Eliot destination while it is running.
     
    154153            service.
    155154        """
    156         self.destinations = destinations
    157 
     155        MultiService.__init__(self)
     156        for destination in destinations:
     157            service = ThreadedWriter(destination, reactor)
     158            service.setServiceParent(self)
    158159
    159160    def startService(self):
     
    161162        self.twisted_observer = _TwistedLoggerToEliotObserver()
    162163        globalLogPublisher.addObserver(self.twisted_observer)
    163         add_destinations(*self.destinations)
    164         return Service.startService(self)
     164        return MultiService.startService(self)
    165165
    166166
    167167    def stopService(self):
    168         for dest in self.destinations:
    169             remove_destination(dest)
    170168        globalLogPublisher.removeObserver(self.twisted_observer)
    171169        self.stdlib_cleanup()
    172         return Service.stopService(self)
     170        return MultiService.stopService(self)
    173171
    174172
  • TabularUnified src/allmydata/util/encodingutil.py

    r2783bd8 r0f596fb  
    88Unicode is the default everywhere in Python 3.
    99"""
    10 from __future__ import absolute_import
    11 from __future__ import division
    12 from __future__ import print_function
    13 from __future__ import unicode_literals
    1410
    1511from future.utils import PY2, PY3, native_str
  • TabularUnified src/allmydata/util/fileutil.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import print_function
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/gcutil.py

    r2783bd8 r0f596fb  
    1111Ported to Python 3.
    1212"""
    13 from __future__ import absolute_import
    14 from __future__ import division
    15 from __future__ import print_function
    16 from __future__ import unicode_literals
    1713
    1814from future.utils import PY2
  • TabularUnified src/allmydata/util/happinessutil.py

    r2783bd8 r0f596fb  
    55Ported to Python 3.
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/hashutil.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/util/humanreadable.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import division
    8 from __future__ import absolute_import
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/idlib.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/util/jsonbytes.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import unicode_literals
    8 from __future__ import absolute_import
    9 from __future__ import division
    10 from __future__ import print_function
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/log.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/util/mathutil.py

    r2783bd8 r0f596fb  
    77"""
    88
    9 from __future__ import division
    10 from __future__ import absolute_import
    11 from __future__ import print_function
    12 from __future__ import unicode_literals
    139
    1410from future.utils import PY2
  • TabularUnified src/allmydata/util/netstring.py

    r2783bd8 r0f596fb  
    44Ported to Python 3.
    55"""
    6 from __future__ import absolute_import
    7 from __future__ import division
    8 from __future__ import print_function
    9 from __future__ import unicode_literals
    106
    117from future.utils import PY2
  • TabularUnified src/allmydata/util/observer.py

    r2783bd8 r0f596fb  
    55"""
    66
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/rrefutil.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/util/spans.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    2 from __future__ import absolute_import
    3 from __future__ import division
    4 from __future__ import unicode_literals
    51
    62from future.utils import PY2
  • TabularUnified src/allmydata/util/statistics.py

    r2783bd8 r0f596fb  
    1212
    1313
    14 from __future__ import unicode_literals
    15 from __future__ import absolute_import
    16 from __future__ import division
    17 from __future__ import print_function
    1814
    1915from future.utils import PY2
  • TabularUnified src/allmydata/util/time_format.py

    r2783bd8 r0f596fb  
    55http://www.cl.cam.ac.uk/~mgk25/iso-time.html
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/util/yamlutil.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/check_results.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/directory.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/info.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/logs.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import (
    5     print_function,
    6     unicode_literals,
    7     absolute_import,
    8     division,
    9 )
    104
    115from autobahn.twisted.resource import WebSocketResource
  • TabularUnified src/allmydata/web/operations.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/private.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/status.py

    r2783bd8 r0f596fb  
    33"""
    44
    5 from __future__ import division
    6 from __future__ import absolute_import
    7 from __future__ import print_function
    8 from __future__ import unicode_literals
    95
    106from future.utils import PY2
  • TabularUnified src/allmydata/web/storage.py

    r2783bd8 r0f596fb  
    22Ported to Python 3.
    33"""
    4 from __future__ import absolute_import
    5 from __future__ import division
    6 from __future__ import print_function
    7 from __future__ import unicode_literals
    84
    95from future.utils import PY2
  • TabularUnified src/allmydata/web/storage_plugins.py

    r2783bd8 r0f596fb  
    55Ported to Python 3.
    66"""
    7 from __future__ import absolute_import
    8 from __future__ import division
    9 from __future__ import print_function
    10 from __future__ import unicode_literals
    117
    128from future.utils import PY2
  • TabularUnified src/allmydata/windows/fixups.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32from future.utils import PY3
  • TabularUnified tox.ini

    r2783bd8 r0f596fb  
    125125basepython = python3
    126126deps =
    127     mypy==1.5.1
     127    mypy==1.8.0
    128128    mypy-zope
    129129    types-mock
  • TabularUnified ws_client.py

    r2783bd8 r0f596fb  
    1 from __future__ import print_function
    21
    32import sys
Note: See TracChangeset for help on using the changeset viewer.