# asn_generate¶

Association generation is done either using the command line tool asn_generate or through the Python API using either Main or generate().

## Command Line¶

asn_generate --help


### Association Candidates¶

A full explanation of association candidates be found under the design section.

### Default Rules¶

The default rules are the Level2 and Level3. Unless the --ignore-default option is specified, these rules are included regardless of any other rules also specified by the -r options.

### DMS Workflow¶

The JWST pipeline environment has specific requirements that must be met by any task running in that environment. The --DMS option ensures that asn_generate conforms to those specifications.

## API¶

There are two programmatic entry points: the Main class and the generate() function. Main is the highest level entry and is what is instantiated when the command line asn_generate is used. Main parses the command line options, creates the AssociationPool and AssociationRegistry instances, calls generate, and saves the resulting associations.

generate() is the main mid-level entry point. Given an AssociationPool and an AssociationRegistry, generate() returns a list of associations.