Not sure, but the use of None with units especially when calling __getitem__() with no default on parameters, since the default if not given is None. Pint will create a dimensionless unit if None or "" (or nearly anything that evaluates to False) are given.
@anomam I think we need to careful of this and be as explicit as possible in unit declarations, use "dimensionless" or "" for non-dimen units, otherwise, leave the units arg out of the parameter call.