pypy changed how .replace creates a new instance, by instantiating type(self).
Which ends up being a FluentDateTime, which doesn't take the positional arguments that datetime does.
@spookylukey, is this something you could tackle? I managed to reproduce this in the existing test suite on pypy3.5 6.0, but I'm not sure I understand how you're using kwargs in the __new__ and _init.
This blocks updating our python testing setup in #70 .