index | modules | gitlab | page source

# 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?

Documentation v: 3.19.0

Versions
  3.20.0b1 (development)
  3.19.0 (latest stable)