aboutsummaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
blob: e4a6d767dc649ba3863c91a7c18a38da31b21ac8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
SUMMARY = "Dependency graphing for Python"
DESCRIPTION = " Generate dependency graphs from Python code. This \
dependency tracker package has a few distinguishing characteristics \
\
    * It uses the AST to parse the Python files. This is very reliable, \
      it always runs.\
    * No module is loaded. Loading modules to figure out dependencies is \
      almost always problem, because a lot of codebases run initialization \
      code in the global namespace, which often requires additional setup. \
      Snakefood is guaranteed not to have this problem (it just runs, no \
      matter what).\
    * It works on a set of files, i.e. you do not have to specify a single \
      script, you can select a directory (package or else) or a set of files.\
      It finds all the Python files recursively automatically.\
    * Automatic/no configuration: your PYTHONPATH is automatically adjusted \
      to include the required package roots. It figures out the paths that \
      are required from the files/directories given as input. You should not \
      have to setup ANYTHING.\
    * It does not have to automatically 'follow' dependencies between modules,\
      i.e. by default it only considers the files and directories you specify \
      on the command-line and their immediate dependencies. It also has an \
      option to automatically include only the dependencies within the \
      packages of the files you specify.\
    * It follows the UNIX philosophy of small programs that do one thing well:\
      it consists of a few simple programs whose outputs you combine via \
      pipes. Graphing dependencies always requires the user to filter and \
      cluster the filenames, so this is appropriate. You can combine it with \
      your favourite tools, grep, sed, etc.\
\
A problem with dependency trackers that run code is that they are unreliable, \
due to the dynamic nature of Python (the presence of imports within function \
calls and __import__ hooks makes it almost impossible to always do the right \
thing). This script aims at being right 99% of the time, and we think that \
given the trade-offs, 99% is good enough for 99% of the uses.\
"
AUTHOR = "Martin Blais <blais@furius.ca>"
HOMEPAGE = "http://furius.ca/snakefood"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"

SRC_URI[md5sum] = "56c88667a33d8909b0aabf2ab6903bdf"
SRC_URI[sha256sum] = "295784668032254e7391ca99ba7060edd3ae4eca1a330ac11627b18ab5923b77"

inherit pypi setuptools

RDEPENDS_${PN} = " python-logging python-compiler python-shell"
# the above modules do not have a -native counterpart
RDEPENDS_${PN}_class-native = ""

BBCLASSEXTEND = "native"