os.path.abspath() sometimes returns str instead of unicode? #1108
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1108
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Python 2.7 just came out, and reading through the changes led me to:
http://bugs.python.org/issue3426
We use
os.path.abspath()
in a few places where its argument is unicode.I also noticed:
http://bugs.python.org/issue5827
but we don't currently use
os.path.normpath()
.How come our unit tests don't show this problem happening to us?
Attachment abspath-and-unicode-basedirs.dpatch (33158 bytes) added
Our tests might not show this for any of the following reasons:
os.path.abspath
._trial_temp
directory, which is at an ASCII path even if the test creates files and subdirectories at non-ASCII paths.os.path.abspath
only occurs whennone of the resulting path components come from the input stringthe input path is relative and the current directory path is non-ASCII.os.path.abspath
returns a bytestring, it will often get coerced to a Unicode string (not necessarily the correct one!) by the default Python coercions.Note that while abspath-and-unicode-basedirs.dpatch makes most of the changes needed to support Unicode paths for basedirs, you still can't, at least on Windows, build or test a Tahoe source tree at an arbitrary Unicode path. (That would require changes to Python, darcs, setuptools, Twisted trial, etc., and is probably not a realistic aim.)
The changesets relevant to this ticket on the ticket798 branch are:
[4598/ticket798]
[4599/ticket798]
[4601/ticket798]
[4604/ticket798]
[4606/ticket798]
[4607/ticket798]
The changesets relevant to this ticket on trunk are changeset:11b18824c7ff3237 changeset:618db4867c68a6f9 changeset:f036dfaa4bfb9f90 changeset:2b33704d613da8d1 changeset:013954c2659db71f changeset:d3a8ef762f74b925 changeset:02199db615047ea1.
Okay I looked over these patches a bit and didn't see anything obviously wrong. It was a pretty quick and lazy review, but better than nothing.