API — Pymaker 0.0.1 documentation

# API

Welcome to the API of Pymaker!

## Exceptions

exception `pymaker.` `RecursiveDefinitionError`

  An error raised when a recursive definition is detected.

## Public Functions

`@``pymaker.` `command`(command, deps)

  Define a command. Dependencies can be declared through the `deps` argument. Help for that command can be defined through the docstring. A command name can be provided through the `name` option, but it defaults to the function’s name, which is probably what you want. Example:

       @command
       def fn():
           "This is a help string."
           pass

       @command(deps=['fn'])
       def fn2():
           pass

      @command(name='notme')
      def fn3():
          pass

`pymaker.` `declare_argument`(*args, **kwargs)

  Declare a command-line argument. Acts as a wrapper around `argparse.ArgumentParser.add_argument`.

`pymaker.` `r`(s)

  Run a command. This is a wrapper for either `os.system` or `subprocess.call`, depending on whether the argument is a string or a list. Example:

      >>> r('echo "This is a test"')
      Pymaker: echo "This is a test"
      This is a test
      >>> r(['echo', 'This is a test'])
      Pymaker: echo This is a test
      This is a test

  Use this function instead of `os.system` or `subprocess.call` when calling shell commands.

`pymaker.` `main`(filename='Makefile.py')

  Main function. Can be added like so to make any file a Makefile:

      main(__file__)

  Then, you can run that file like a Makefile by doing `python <filename> <command>`.

## Private Functions

`pymaker.` `build_direc`(filename)

  Builds a directory of all commands.

`pymaker.` `call_command`(command, direc, ns)

  Call a command, given a command name, a directory, and a namespace object.

`pymaker.` `make_help_message`(direc)

  Makes a help message from the Makefile.py present in the directory.