Command line tools

This proposal tries to clean up the command line tools that we distribute with ASE.

Current status

ASE currently has 7 command line tools that we install in /usr/bin:

command

description

ag

ASE’s GUI

ASE2ase

Translate old ASE-2 code to ASE-3 style

testase

Run tests

ase

First attempt to create a command that can do everything

asec

Second attempt

foldtrajectory

Wrap atoms outside simulation box to inside box

trajectoryinfo

Write information about trajectory file

Proposed set of command line tools

In the future things will look like this:

command

description

ase-gui

ASE’s GUI

ase-info

Write information about files

ase-test

Run tests

ase-build

Build simple molecule or bulk structure

ase-run

Run calculations with ASE’s calculators

ase-db

Put stuff into or query database

Comments

ag:

Renamed to ase-gui.

ASE2ase:

Removed — no longer needed.

testase:

Renamed to ase-test. Alternative:

python setup.py test

ase and asec:

Replaced by new commands ase-build and ase-run. The old ase command is hopefully not used a lot since we propose to get rid of it.

foldtrajectory:

Too specialized to deserve its own command. Use:

python -m ase.md.foldtrajectory

instead.

trajectoryinfo:

Replaced by new more general command ase-info that can pull out information from anything that ASE can read.

Naming convention

Any suggestions for better names or are the proposed ones OK? The good thing about using ase-something for all is that it is consistent and if you know one command, you will maybe discover the other ones when you do tab-completion.

Implementation details

  • Should we use the very nice argparse module, which is the future but only available in Python 2.7, or should we stick with the old and deprecated optparse module?