def construction_error(tot_items, block_shape, axes, e=None):
passed = tuple(map(int, [tot_items] + list(block_shape)))<EOL>if len(passed) <= <NUM_LIT:2>:<EOL><INDENT>passed = passed[::-<NUM_LIT:1>]<EOL><DEDENT>implied = tuple(len(ax) for ax in axes)<EOL>if len(implied) <= <NUM_LIT:2>:<EOL><INDENT>implied = implied[::-<NUM_LIT:1>]<EOL><DEDENT>if passed == implied and e is not None:<EOL><INDENT>raise e<EOL><DEDENT>if block_shape[<NUM_LIT:0>] == <NUM_LIT:0>:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>raise ValueError("<STR_LIT>".format(<EOL>passed, implied))<EOL>
raise a helpful message about our construction