---
name: "sfood"
section: "1"
platform: "linux"
package: "snakefood"
version: "1.4-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/sfood"
---

# sfood(1)

detect import statements using the AST parser

## NAME

sfood - detect import statements using the AST parser

## SYNOPSIS

**sfood** \[*options*\] *files* ...

## DESCRIPTION

This script outputs a comma-separated list of tuples:

-

  ((from\_root, from\_filename), (to\_root, to\_filename))

The roots are the root directories where the modules lie.  You can use sfood-graph or some other tool to filter, cluster and generate a meaningful graph from this list of dependencies.

As a special case, if the 'to' tuple is (None, None), this means to at least include the 'from' tuple as a node.  This may happen if the file has no dependencies on anything.

As inputs, it can receive either files or directories; in case no argument is passed, it parses the current directory recursively.

## OPTIONS

- **-h**, **--help**

  show the help message and exit

- **-i**, **--internal**, **--internal-only**

  Filter out dependencies that are outside of the roots of the input files. If internal is used twice, we filter down further the dependencies to the # set of files that were processed only, not just to the files that live in the same roots.

- **-I** IGNORES, **--ignore**=*IGNORES*

  Add the given directory name to the list to be ignored.

- **-v**, **--verbose**

  Output more debugging information

- **-f**, **-r**, **--follow**, **--recursive**

  Follow the modules depended upon and trace their dependencies. WARNING: This can be slow.  Use **--internal** to limit the scope.

- **--print-roots**

  Only print the package roots corresponding to the input files.This is mostly used for testing and troubleshooting.

- **-d**, **--disable-pragmas**

  Disable processing of pragma directives as strings after imports.

- **-u**, **--ignore-unused**

  Automatically ignore unused imports. (See [**sfood-checker**(1)](/sfood-checker/1.md))

## SEE ALSO

[**sfood-checker**(1)](/sfood-checker/1.md), [**sfood-cluster**(1)](/sfood-cluster/1.md), [**sfood-copy**(1)](/sfood-copy/1.md), [**sfood-flatten**(1)](/sfood-flatten/1.md), [**sfood-graph**(1)](/sfood-graph/1.md), [**sfood-imports**(1)](/sfood-imports/1.md).

## AUTHOR

sfood was written by Martin Blais \<blais@furius.ca\> and it's part of snakefood suite.

This manual page was written by Sandro Tosi \<morph@debian.org\>, for the Debian project (and may be used by others).
