Data::Hopen - A dataflow library with first-class edges
Data::Hopen is a dataflow library that runs actions you specify, moves data between those actions, and permits transforming data as the data moves. It is the underlying engine of the App::hopen cross-platform software build generator, but can be used for any dataflow task that can be represented as a directed acyclic graph (DAG).
Data::Hopen
Easiest: install cpanminus if you don't have it - see https://metacpan.org/pod/App::cpanminus#INSTALLATION. Then run cpanm Data::Hopen.
cpanminus
cpanm Data::Hopen
Manually: clone or untar into a working directory. Then, in that directory,
perl Makefile.PL make make test
(you may need to install dependencies as well - see https://www.cpan.org/modules/INSTALL.html for resources). If all the tests pass,
make install
If some of the tests fail, please check the issues and file a new one if no one else has reported the problem yet.
Not exported by default, except as noted.
Set to a positive integer to get debug output on stderr from hopen's internals. The higher the value, the more output you are likely to get. See also "hlog".
Set to truthy to suppress output. Quiet overrides "$VERBOSE".
All are exported by default unless indicated.
Creates a new Data::Hopen instance. For example:
hnew DAG => 'foo';
is the same as
Data::Hopen::G::DAG->new( name => 'foo' );
The first parameter ($class) is an abbreviated package name. It is tried as the following, in order. The first one that succeeds is used.
$class
Data::Hopen::G::$class. This is tried only if $class does not include a double-colon.
Data::Hopen::G::$class
Data::Hopen::$class
The second parameter must be the name of the new instance. All other parameters are passed unchanged to the relevant constructor.
(Not exported by default) Load a package given a list of stems. Usage:
my $fullname = loadfrom($name[, @stems]);
Returns the full name of the loaded package, or falsy on failure. If @stems is omitted, no stem is used, i.e., $name is tried as-is.
@stems
$name
Log information if "$VERBOSE" is set. Usage:
hlog { <list of things to log> } [optional min verbosity level (default 1)];
The items in the list are joined by ' ' on output, and a '\n' is added. Each line is prefixed with '# ' for the benefit of test runs.
' '
'\n'
'# '
The list is in {} so that it won't be evaluated if logging is turned off. It is a full block, so you can run arbitrary code to decide what to log. If the block returns an empty list, hlog will not produce any output. However, if the block returns at least one element, hlog will produce at least a '# '.
{}
The message will be output only if "$VERBOSE" is at least the given minimum verbosity level (1 by default).
If $VERBOSE > 2, the filename and line from which hlog was called will also be printed.
$VERBOSE > 2
Returns truthy if the given argument is the name of a MY.hopen.pl file. See also "MYH".
MY.hopen.pl
An alias of the parameters() function from Getargs::Mixed, but with -undef_ok set.
parameters()
-undef_ok
A Data::Hopen::Util::NameSet that matches any non-empty string. Always returns the same reference, so that it can be tested with ==.
==
A Data::Hopen::Util::NameSet that never matches. Always returns the same reference, so that it can be tested with ==.
The name MY.hopen.pl, centralized here. Not exported by default.
You can find documentation for this module with the perldoc command.
perldoc Data::Hopen perldoc hopen
You can also look for information at:
GitHub (report bugs here)
https://github.com/cxw42/hopen
MetaCPAN
https://metacpan.org/release/Data-Hopen
Luke
a bit of Ant
a tiny bit of Buck
my own frustrations working with CMake.
Copyright (C) 2018--2019 Christopher White, <cxwembedded at gmail.com>
<cxwembedded at gmail.com>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
To install Data::Hopen, copy and paste the appropriate command in to your terminal.
cpanm
CPAN shell
perl -MCPAN -e shell install Data::Hopen
For more information on module installation, please visit the detailed CPAN module installation guide.