Reviving this thread 2.5 years after I started it just to share this
satisfying moment. I was just spending a few hours furiously coding on my
research <https://r.rachum.com/> using Python 3.10, and when I ran my code
I got this traceback:
File
"/home/ramrachum/.venvs/ray_env/lib/python3.10/site-packages/ray/rllib/algorithms/algorithm.py",
line 1993, in log_result
self.callbacks.on_train_result(algorithm=self, result=result)
│ │ └
{'custom_metrics': {}, 'episode_media': {}, 'num_recreated_workers': 0,
'info': {'learner': {'policy_robot': {'learner_stats': {...
│ └ PPO
└ PPO
File "/herring/nichos/nichos/snare/__init__.py", line 150, in
on_train_result
robot_move_by_state = get_move_by_state(
File "/herring/nichos/nichos/snare/__init__.py", line 75, in
get_move_by_state
return dict(zip(states, moves, strict=True))
│ └ array([0, 1, 0, ..., 1, 0, 1])
└ <itertools.chain object at 0x7f08dc157610>
ValueError: zip() argument 2 is longer than argument 1
It took a few seconds for me to understand... "Ah... This error is my
error" :)
On Mon, Apr 20, 2020 at 8:42 PM Ram Rachum <[email protected]> wrote:
> Here's something that would have saved me some debugging yesterday:
>
> >>> zipped = zip(x, y, z, strict=True)
>
> I suggest that `strict=True` would ensure that all the iterables have been
> exhausted, raising an exception otherwise.
>
> This is useful in cases where you're assuming that the iterables all have
> the same lengths. When your assumption is wrong, you currently just get a
> shorter result, and it could take you a while to figure out why it's
> happening.
>
> What do you think?
>
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/DPQEIIOAEGJKIVDHTAKQ6CJPCGS7C5G7/
Code of Conduct: http://python.org/psf/codeofconduct/