summaryrefslogtreecommitdiffstats
path: root/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
diff options
context:
space:
mode:
authorTim Orling <ticotimo@gmail.com>2014-08-23 17:57:05 -0700
committerMartin Jansa <Martin.Jansa@gmail.com>2014-08-27 12:49:19 +0200
commit1a199dca255cab3cf8ad23a0508c4175353ea441 (patch)
tree245a24fdea5d9891aca3d7d8acfc449323baac0d /meta-python/recipes-devtools/python/python-snakefood_1.4.bb
parent40ecf311feaf766b8219a7b6889daf9e0309f4a5 (diff)
downloadmeta-openembedded-1a199dca255cab3cf8ad23a0508c4175353ea441.tar.gz
python-snakefood: add 1.4
* Generate dependencies from Python code, filter, cluster and generate graphs from the dependency list * Tools included: - sfood: Given a set of input files or root directories, generate a list of dependencies between the files; - sfood-graph: Read a list of dependencies and produce a Graphviz dot file. (This file can be run through the Graphviz dot tool to produce a viewable/printable PDF file); - sfood-cluster: Read a list of dependencies, a list of file clusters, and output a list of simplified (clustered) dependencies. - sfood-checker: Analyze the source code with the AST and list unused or redundant imports. - sfood-imports: Find and list import statements in Python files, regardless of whether they can be imported or not. Signed-off-by: Tim Orling <TicoTimo@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-python/recipes-devtools/python/python-snakefood_1.4.bb')
-rw-r--r--meta-python/recipes-devtools/python/python-snakefood_1.4.bb56
1 files changed, 56 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python/python-snakefood_1.4.bb b/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
new file mode 100644
index 000000000..1af33d44d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
@@ -0,0 +1,56 @@
1SUMMARY = "Dependency graphing for Python"
2DESCRIPTION = " Generate dependency graphs from Python code. This \
3dependency tracker package has a few distinguishing characteristics \
4\
5 * It uses the AST to parse the Python files. This is very reliable, \
6 it always runs.\
7 * No module is loaded. Loading modules to figure out dependencies is \
8 almost always problem, because a lot of codebases run initialization \
9 code in the global namespace, which often requires additional setup. \
10 Snakefood is guaranteed not to have this problem (it just runs, no \
11 matter what).\
12 * It works on a set of files, i.e. you do not have to specify a single \
13 script, you can select a directory (package or else) or a set of files.\
14 It finds all the Python files recursively automatically.\
15 * Automatic/no configuration: your PYTHONPATH is automatically adjusted \
16 to include the required package roots. It figures out the paths that \
17 are required from the files/directories given as input. You should not \
18 have to setup ANYTHING.\
19 * It does not have to automatically 'follow' dependencies between modules,\
20 i.e. by default it only considers the files and directories you specify \
21 on the command-line and their immediate dependencies. It also has an \
22 option to automatically include only the dependencies within the \
23 packages of the files you specify.\
24 * It follows the UNIX philosophy of small programs that do one thing well:\
25 it consists of a few simple programs whose outputs you combine via \
26 pipes. Graphing dependencies always requires the user to filter and \
27 cluster the filenames, so this is appropriate. You can combine it with \
28 your favourite tools, grep, sed, etc.\
29\
30A problem with dependency trackers that run code is that they are unreliable, \
31due to the dynamic nature of Python (the presence of imports within function \
32calls and __import__ hooks makes it almost impossible to always do the right \
33thing). This script aims at being right 99% of the time, and we think that \
34given the trade-offs, 99% is good enough for 99% of the uses.\
35"
36AUTHOR = "Martin Blais <blais@furius.ca>"
37HOMEPAGE = "http://furius.ca/snakefood"
38SECTION = "devel/python"
39LICENSE = "GPL-2.0"
40LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
41SRCNAME = "snakefood"
42
43SRC_URI = "https://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
44SRC_URI[md5sum] = "56c88667a33d8909b0aabf2ab6903bdf"
45SRC_URI[sha256sum] = "295784668032254e7391ca99ba7060edd3ae4eca1a330ac11627b18ab5923b77"
46
47S = "${WORKDIR}/${SRCNAME}-${PV}"
48
49inherit setuptools
50
51RDEPENDS_${PN} = " python-logging python-compiler python-shell"
52# the above modules do not have a -native counterpart
53RDEPENDS_${PN}_class-native = ""
54
55BBCLASSEXTEND = "native"
56