In Pulsar(), currently Enterprise uses isinstance to determine whether to create a PintPulsar or a Tempo2Pulsar object.
When packages write tests in their test suite, sometimes Mock objects are used instead of libstempo/PINT pulsars. Or perhaps there are other reasons to not pass a libstempo/PINT object. Enterprise could still make a PintPulsar or a Tempo2Pulsar object if we were to use duck-typing in this function. Currently, isinstance makes that impossible