Skip to content

Commit

Permalink
Merge pull request #589 from tahoe-lafs/3015-octal-numeric-literals
Browse files Browse the repository at this point in the history
updated instances of octal literals to use the format 0o123 for python3 compatibility
  • Loading branch information
heartsucker committed Mar 31, 2019
2 parents 7263ceb + 129ef22 commit d8187a0
Show file tree
Hide file tree
Showing 15 changed files with 101 additions and 77 deletions.
1 change: 1 addition & 0 deletions newsfragments/3015.other
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Updated instances of octal literals to use the format 0o123 for Python3 compatibility.
43 changes: 33 additions & 10 deletions py3_valid_syntax.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
docs/
integration/
misc/build_helpers/check-build.py
misc/build_helpers/gen-package-table.py
misc/build_helpers/run-deprecations.py
misc/build_helpers/show-tool-versions.py
misc/build_helpers/test-osx-pkg.py
misc/coding_tools/check-debugging.py
misc/coding_tools/check-umids.py
misc/coding_tools/coverage2el.py
misc/coding_tools/find-trailing-spaces.py
misc/coding_tools/fixshebangs.py
misc/coding_tools/graph-deps.py
misc/incident-gatherer/classify_tahoe.py
misc/operations_helpers/provisioning/provisioning.py
misc/operations_helpers/provisioning/reliability.py
misc/operations_helpers/provisioning/run.py
misc/operations_helpers/provisioning/test_provisioning.py
misc/operations_helpers/provisioning/util.py
misc/operations_helpers/provisioning/web_reliability.py
misc/operations_helpers/spacetime/diskwatcher.py
misc/coding_tools/make-canary-files.py
misc/incident-gatherer/
misc/operations_helpers/
misc/simulators/
release-tools/
setup.py
src/allmydata/_auto_deps.py
Expand Down Expand Up @@ -48,11 +50,14 @@ src/allmydata/mutable/publish.py
src/allmydata/mutable/repairer.py
src/allmydata/mutable/servermap.py
src/allmydata/nodemaker.py
src/allmydata/node.py
src/allmydata/scripts/admin.py
src/allmydata/scripts/cli.py
src/allmydata/scripts/common.py
src/allmydata/scripts/create_node.py
src/allmydata/scripts/default_nodedir.py
src/allmydata/scripts/__init__.py
src/allmydata/scripts/magic_folder_cli.py
src/allmydata/scripts/stats_gatherer.py
src/allmydata/scripts/tahoe_add_alias.py
src/allmydata/scripts/tahoe_backup.py
Expand All @@ -61,8 +66,13 @@ src/allmydata/scripts/tahoe_restart.py
src/allmydata/scripts/tahoe_run.py
src/allmydata/scripts/tahoe_start.py
src/allmydata/scripts/tahoe_status.py
src/allmydata/storage_client.py
src/allmydata/stats.py
src/allmydata/storage/
src/allmydata/test/bench_dirnode.py
src/allmydata/test/check_grid.py
src/allmydata/test/check_load.py
src/allmydata/test/check_memory.py
src/allmydata/test/check_speed.py
src/allmydata/test/cli/common.py
src/allmydata/test/cli/__init__.py
src/allmydata/test/cli/test_alias.py
Expand All @@ -71,6 +81,7 @@ src/allmydata/test/cli/test_daemonize.py
src/allmydata/test/cli/test_invite.py
src/allmydata/test/cli/test_start.py
src/allmydata/test/cli/test_status.py
src/allmydata/test/common_util.py
src/allmydata/test/common_web.py
src/allmydata/test/eliotutil.py
src/allmydata/test/__init__.py
Expand All @@ -85,7 +96,10 @@ src/allmydata/test/mutable/test_interoperability.py
src/allmydata/test/mutable/test_multiple_encodings.py
src/allmydata/test/mutable/test_multiple_versions.py
src/allmydata/test/mutable/test_repair.py
src/allmydata/test/mutable/test_roundtrip.py
src/allmydata/test/mutable/test_servermap.py
src/allmydata/test/mutable/test_update.py
src/allmydata/test/mutable/test_version.py
src/allmydata/test/mutable/util.py
src/allmydata/test/plugins/tahoe_lafs_dropin.py
src/allmydata/test/status.py
Expand All @@ -98,6 +112,7 @@ src/allmydata/test/test_connections.py
src/allmydata/test/test_eliotutil.py
src/allmydata/test/test_encode.py
src/allmydata/test/test_filenode.py
src/allmydata/test/test_ftp.py
src/allmydata/test/test_happiness.py
src/allmydata/test/test_helper.py
src/allmydata/test/test_hung_server.py
Expand All @@ -108,9 +123,11 @@ src/allmydata/test/test_inotify.py
src/allmydata/test/test_introducer.py
src/allmydata/test/test_iputil.py
src/allmydata/test/test_json_metadata.py
src/allmydata/test/test_magic_folder.py
src/allmydata/test/test_magicpath.py
src/allmydata/test/test_multi_introducers.py
src/allmydata/test/test_netstring.py
src/allmydata/test/test_node.py
src/allmydata/test/test_no_network.py
src/allmydata/test/test_observer.py
src/allmydata/test/test_runner.py
Expand All @@ -121,7 +138,11 @@ src/allmydata/test/test_uri.py
src/allmydata/test/test_version.py
src/allmydata/test/web/common.py
src/allmydata/test/web/__init__.py
src/allmydata/test/web/matchers.py
src/allmydata/test/web/test_grid.py
src/allmydata/test/web/test_introducer.py
src/allmydata/test/web/test_logs.py
src/allmydata/test/web/test_private.py
src/allmydata/test/web/test_root.py
src/allmydata/test/web/test_token.py
src/allmydata/test/web/test_util.py
Expand Down Expand Up @@ -149,6 +170,7 @@ src/allmydata/util/nummedobj.py
src/allmydata/util/observer.py
src/allmydata/util/pipeline.py
src/allmydata/util/pkgresutil.py
src/allmydata/util/pollmixin.py
src/allmydata/util/progress.py
src/allmydata/util/repeatable_random.py
src/allmydata/util/rrefutil.py
Expand All @@ -157,9 +179,10 @@ src/allmydata/util/statistics.py
src/allmydata/util/tor_provider.py
src/allmydata/util/verlib.py
src/allmydata/util/yamlutil.py
src/allmydata/_version.py
src/allmydata/watchdog/
src/allmydata/web/
src/allmydata/webish.py
src/allmydata/windows/__init__.py
src/allmydata/windows/tahoesvc.py
static/tahoe.py
ws_client.py
2 changes: 1 addition & 1 deletion src/allmydata/frontends/ftpd.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ def _populate_row(self, keys, (childnode, metadata)):
# Twisted-15.0.0 expects a
# twisted.python.filepath.Permissions , and calls its
# .shorthand() method. This provides both.
value = IntishPermissions(0600)
value = IntishPermissions(0o600)
elif key == "hardlinks":
value = 1
elif key == "modified":
Expand Down
8 changes: 4 additions & 4 deletions src/allmydata/frontends/magic_folder.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,10 +283,10 @@ def fix_magic_folder_config(yaml_fname, name, config):

# make sure directory for magic folder exists
dir_fp = to_filepath(config['directory'])
umask = config.setdefault('umask', 0077)
umask = config.setdefault('umask', 0o077)

try:
os.mkdir(dir_fp.path, 0777 & (~ umask))
os.mkdir(dir_fp.path, 0o777 & (~ umask))
except OSError as e:
if EEXIST != e.errno:
# Report some unknown problem.
Expand Down Expand Up @@ -1642,9 +1642,9 @@ def _write_downloaded_file_logged(self, local_path_u, abspath_u,
replacement_path_u = abspath_u + u".tmp" # FIXME more unique

initial_path_u = os.path.dirname(abspath_u)
fileutil.make_dirs_with_absolute_mode(local_path_u, initial_path_u, (~ self._umask) & 0777)
fileutil.make_dirs_with_absolute_mode(local_path_u, initial_path_u, (~ self._umask) & 0o777)
fileutil.write(replacement_path_u, file_contents)
os.chmod(replacement_path_u, (~ self._umask) & 0666)
os.chmod(replacement_path_u, (~ self._umask) & 0o666)

# FUDGE_SECONDS is used to determine if another process has
# written to the same file concurrently. This is described in
Expand Down
6 changes: 3 additions & 3 deletions src/allmydata/frontends/sftpd.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,19 +214,19 @@ def _populate_attrs(childnode, metadata, size=None):
if childnode and childnode.is_unknown():
perms = 0
elif childnode and IDirectoryNode.providedBy(childnode):
perms = S_IFDIR | 0777
perms = S_IFDIR | 0o777
else:
# For files, omit the size if we don't immediately know it.
if childnode and size is None:
size = childnode.get_size()
if size is not None:
_assert(isinstance(size, (int, long)) and not isinstance(size, bool), size=size)
attrs['size'] = size
perms = S_IFREG | 0666
perms = S_IFREG | 0o666

if metadata:
if metadata.get('no-write', False):
perms &= S_IFDIR | S_IFREG | 0555 # clear 'w' bits
perms &= S_IFDIR | S_IFREG | 0o555 # clear 'w' bits

# See webapi.txt for what these times mean.
# We would prefer to omit atime, but SFTP version 3 can only
Expand Down
2 changes: 1 addition & 1 deletion src/allmydata/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -784,7 +784,7 @@ def startService(self):
# need to send a pid to the foolscap log here.
twlog.msg("My pid: %s" % os.getpid())
try:
os.chmod("twistd.pid", 0644)
os.chmod("twistd.pid", 0o644)
except EnvironmentError:
pass

Expand Down
4 changes: 2 additions & 2 deletions src/allmydata/scripts/create_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ def create_node(config):
else:
print(" {}: [sensitive data; see tahoe.cfg]".format(k), file=out)

fileutil.make_dirs(os.path.join(basedir, "private"), 0700)
fileutil.make_dirs(os.path.join(basedir, "private"), 0o700)
with open(os.path.join(basedir, "tahoe.cfg"), "w") as c:
yield write_node_config(c, config)
write_client_config(c, config)
Expand Down Expand Up @@ -465,7 +465,7 @@ def create_introducer(config):
os.mkdir(basedir)
write_tac(basedir, "introducer")

fileutil.make_dirs(os.path.join(basedir, "private"), 0700)
fileutil.make_dirs(os.path.join(basedir, "private"), 0o700)
with open(os.path.join(basedir, "tahoe.cfg"), "w") as c:
yield write_node_config(c, config)

Expand Down
4 changes: 2 additions & 2 deletions src/allmydata/test/cli/test_backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ def _check((rc, out, err)):

# This is necessary for the temp files to be correctly removed
def _cleanup(self):
os.chmod(os.path.join(source, "foo.txt"), 0644)
os.chmod(os.path.join(source, "foo.txt"), 0o644)
d.addCallback(_cleanup)
d.addErrback(_cleanup)

Expand Down Expand Up @@ -501,7 +501,7 @@ def _check((rc, out, err)):

# This is necessary for the temp files to be correctly removed
def _cleanup(self):
os.chmod(os.path.join(source, "test"), 0655)
os.chmod(os.path.join(source, "test"), 0o655)
d.addCallback(_cleanup)
d.addErrback(_cleanup)
return d
Expand Down
2 changes: 1 addition & 1 deletion src/allmydata/test/no_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ def create_no_network_client(basedir):
does no actual networking but has the same API.
"""
basedir = abspath_expanduser_unicode(unicode(basedir))
fileutil.make_dirs(os.path.join(basedir, "private"), 0700)
fileutil.make_dirs(os.path.join(basedir, "private"), 0o700)

from allmydata.client import read_config
config = read_config(basedir, u'client.port')
Expand Down
6 changes: 3 additions & 3 deletions src/allmydata/test/test_ftp.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,12 @@ def test_list(self):

expected_root = [
('loop',
[0, True, ftpd.IntishPermissions(0600), 1, self.FALL_OF_BERLIN_WALL, 'alice', 'alice', '??']),
[0, True, ftpd.IntishPermissions(0o600), 1, self.FALL_OF_BERLIN_WALL, 'alice', 'alice', '??']),
('immutable',
[23, False, ftpd.IntishPermissions(0600), 1, self.TURN_OF_MILLENIUM, 'alice', 'alice', '??']),
[23, False, ftpd.IntishPermissions(0o600), 1, self.TURN_OF_MILLENIUM, 'alice', 'alice', '??']),
('mutable',
# timestamp should be 0 if no timestamp metadata is present
[0, False, ftpd.IntishPermissions(0600), 1, 0, 'alice', 'alice', '??'])]
[0, False, ftpd.IntishPermissions(0o600), 1, 0, 'alice', 'alice', '??'])]

d.addCallback(lambda root: self._compareDirLists(root, expected_root))

Expand Down
16 changes: 8 additions & 8 deletions src/allmydata/test/test_magic_folder.py
Original file line number Diff line number Diff line change
Expand Up @@ -2281,23 +2281,23 @@ def _check_errors(n):
readonly_dircap = n.get_readonly_uri()

self.shouldFail(ValueError, 'does not exist', 'does not exist',
MagicFolder, client, upload_dircap, '', doesnotexist, magicfolderdb, 0077, 'default')
MagicFolder, client, upload_dircap, '', doesnotexist, magicfolderdb, 0o077, 'default')
self.shouldFail(ValueError, 'is not a directory', 'is not a directory',
MagicFolder, client, upload_dircap, '', not_a_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, upload_dircap, '', not_a_dir, magicfolderdb, 0o077, 'default')
self.shouldFail(AssertionError, 'bad upload.dircap', 'does not refer to a directory',
MagicFolder, client, 'bad', '', errors_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, 'bad', '', errors_dir, magicfolderdb, 0o077, 'default')
self.shouldFail(AssertionError, 'non-directory upload.dircap', 'does not refer to a directory',
MagicFolder, client, 'URI:LIT:foo', '', errors_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, 'URI:LIT:foo', '', errors_dir, magicfolderdb, 0o077, 'default')
self.shouldFail(AssertionError, 'readonly upload.dircap', 'is not a writecap to a directory',
MagicFolder, client, readonly_dircap, '', errors_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, readonly_dircap, '', errors_dir, magicfolderdb, 0o077, 'default')
self.shouldFail(AssertionError, 'collective dircap', 'is not a readonly cap to a directory',
MagicFolder, client, upload_dircap, upload_dircap, errors_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, upload_dircap, upload_dircap, errors_dir, magicfolderdb, 0o077, 'default')

def _not_implemented():
raise NotImplementedError("blah")
self.patch(magic_folder, 'get_inotify_module', _not_implemented)
self.shouldFail(NotImplementedError, 'unsupported', 'blah',
MagicFolder, client, upload_dircap, '', errors_dir, magicfolderdb, 0077, 'default')
MagicFolder, client, upload_dircap, '', errors_dir, magicfolderdb, 0o077, 'default')
d.addCallback(_check_errors)
return d.result

Expand All @@ -2310,7 +2310,7 @@ def _log(self, msg):
pass

writefile = TestWriteFileMixin()
writefile._umask = 0077
writefile._umask = 0o077

# create a file with name "foobar" with content "foo"
# write downloaded file content "bar" into "foobar" with is_conflict = False
Expand Down
2 changes: 1 addition & 1 deletion src/allmydata/test/test_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ def test_secrets_dir_protected(self):
privdir = os.path.join(basedir, "private")
st = os.stat(privdir)
bits = stat.S_IMODE(st[stat.ST_MODE])
self.failUnless(bits & 0001 == 0, bits)
self.failUnless(bits & 0o001 == 0, bits)

@defer.inlineCallbacks
def test_logdir_is_str(self):
Expand Down

0 comments on commit d8187a0

Please sign in to comment.