![](https://secure.gravatar.com/avatar/d995b462a98fea412efa79d17ba3787a.jpg?s=120&d=mm&r=g)
On 25 February 2015 at 16:02, Jim J. Jewett <jimjjewett@gmail.com> wrote:
On 24 February 2015 at 18:58, Guido van Rossum <guido at python.org> wrote:
The naming of the functions feels inconsistent -- maybe pack(directory, target) -> create_archive(directory, archive), and set_interpreter() -> copy_archive(archive, new_archive)?
Paul Moore wrote:
One possible source of confusion with copy_archive (and its command line equivalent "python -m zipapp old.pyz -o new.pyz") is that it isn't technically a copy, as it changes the shebang line (if you omit the interpreter argument it removes the existing shebang).
Is the difference between create and copy important? e.g., is there anything wrong with
create_archive(old_archive, output=new_archive) working as well as create_archive(directory, archive)?
Probably not, now. The semantics have converged enough that this might be reasonable. It's how the command line interface works, after all. It would mean that the behaviour would be different depending on the value of the source argument (supplying the main argument and omitting the target are only valid for create), but again that's how the command line works. I'll have a go at implementing this change this evening and see how it plays out. Paul