NOTICE: [beets] sampsyo pushed 2 new commits to master: https://github.com/beetbox/beets/compare/ae7990322abe...d5f4c80894f2
NOTICE: beets/master 6c661c4 Johnny Robeson: Replace __cmp__ with rich comparisons for Distance
NOTICE: beets/master d5f4c80 Adrian Sampson: Merge pull request #2034 from jrobeson/replace-__cmp__-with-rich-comparisons...
jackwilsdon
AppVeyor is so slow compared to Travis
2 of the builds haven't even started yet for me
sampsyo
Yeah, it stays "queued" for a really long time.
jrobeson
good work so far on the windows tests sampsyo
sampsyo
We're getting close!
jrobeson
are you gonna be around later?
sampsyo
Maybe a little, but not too much later, alas—I've got some plans later on
jrobeson
so everythong from say somelibraryentry.path shouldbe a bytestring right?
sampsyo
Yes.
jrobeson
after py3 is merged, the first thing to do is reverse most of the work i'm doing right now.. with pathlib
sampsyo
Yes, I suppose so. Also a good chunk of work.
jrobeson
well the more i work with the codebase, the easier it'll be
sampsyo
True!
jrobeson
btw.. sqlite won't accept bytestrings
sampsyo
:(
jrobeson
err i mean the sqlite connect method
sampsyo
Oh! That's better.
(But still bad.)
jrobeson
but at least we'll mostly be ok with that.. compared to the library directory
so mediafile properties.. are we doing an unnecessary decode now on py2 (it's certainly not possible on py3)
py2 propertes can't be unicode can they?
sampsyo
Property names? No, they're bytes on python 2.
…but if they're being used somewhere as unicode, then yeah, they'll need decoding
jrobeson
if isinstance(descriptor, MediaField):
- yield property.decode('utf8')
+ yield property
it passes the tests without it on py2
yeah those aren't true properties.. it's actually dict keys specifically there
sampsyo
Yeah, but it produces a dict containing bytes instead of text on Python 2, which could cause problems. :/
jrobeson
oh, but they are used with getattr() later i think... so they are
i'm now up to like 18 commits on my py3 branch .. minus the one you just merged
sampsyo
That is, we'd need to check what the clients expect: if they want "native strings" exclusively (for property lookup), then it's fine.
jrobeson
so, i ran into a problem last night. where does the translation to bytes happen that mutagen expects when saving a property via mediafile?
jackwilsdon has left the channel
like say the 'customtag' example
jackwilsdon joined the channel
jackwilsdon
What does everyone think of just running python 2.7 and 3.3 tests?
I can't exactly imagine anything changing between 3.3, 3.4 and 3.5
jackwilsdon has left the channel
jackwilsdon joined the channel
sampsyo
jrobeson: There are lots of places where encoding happens, unfortunately. Does grepping for `.encode` in mediafile.py help?
jrobeson
i just know that in sanitize it doesn't do anything for bytes there
sampsyo
jackwilsdon: That seems fine for now—when we actually get Python 3 compatibility, it is nice to know we didn't run afoul of anything in the version changes.
jrobeson
and we really shouldn't be turning them into bytes until we send it to mutagen should we?
jackwilsdon has left the channel
i guess that's another whole can of worms
but the way it is no.. it gets to try to save it.. and _none_value() doesn't send bytes