org: Add link to the Python notebooks.
Fixes #100. * doc/org/tut.org: Link to the notebook. * src/sanity/ipynb.test: New test, to make sure we do not forget to document ipython notebook when we add some. * src/sanity/Makefile.am: Add it and run it. * NEWS: Mention it.
This commit is contained in:
parent
868cabe4f6
commit
21ff2d0415
4 changed files with 118 additions and 9 deletions
2
NEWS
2
NEWS
|
|
@ -4,7 +4,7 @@ New in spot 1.99.2a (not yet released)
|
||||||
for each generated automaton.
|
for each generated automaton.
|
||||||
|
|
||||||
* The html documentation now includes a HTML copies of the man
|
* The html documentation now includes a HTML copies of the man
|
||||||
pages.
|
pages, and HTML copies of the Python notebooks.
|
||||||
|
|
||||||
* Bugs fixed
|
* Bugs fixed
|
||||||
- Some acceptance conditions like Fin(0)|Fin(1)|Fin(2)&Inf(3)
|
- Some acceptance conditions like Fin(0)|Fin(1)|Fin(2)&Inf(3)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ This section contains code examples for using Spot. This is a work in
|
||||||
progress. Feel free to [[mailto:spot@lrde.epita.fr][send]] suggestion of small tasks you would like
|
progress. Feel free to [[mailto:spot@lrde.epita.fr][send]] suggestion of small tasks you would like
|
||||||
to see illustrated here.
|
to see illustrated here.
|
||||||
|
|
||||||
|
|
||||||
* Examples with Shell, Python, and C++
|
* Examples with Shell, Python, and C++
|
||||||
|
|
||||||
All the following pages show how to perform the same task using the
|
All the following pages show how to perform the same task using the
|
||||||
|
|
@ -26,3 +25,29 @@ Python (at least at the moment), so they are purely C++ so far.
|
||||||
|
|
||||||
- [[file:tut21.org][Custom print of an automaton]]
|
- [[file:tut21.org][Custom print of an automaton]]
|
||||||
- [[file:tut22.org][Creating an automaton in C++]]
|
- [[file:tut22.org][Creating an automaton in C++]]
|
||||||
|
|
||||||
|
* Examples in Python only
|
||||||
|
|
||||||
|
In directory =wrap/python/tests=, the [[file:install.org][Spot tarball]] contains a small
|
||||||
|
collection of IPython notebooks. As the name of the directory implies,
|
||||||
|
these are part of the test suite for the Python bindings, however they
|
||||||
|
can be interesting to look at if you want to see more code examples.
|
||||||
|
|
||||||
|
For convenience, the following links offer static HTML renderings of
|
||||||
|
these notebooks, but we strongly suggest interactively evaluating the
|
||||||
|
real notebooks instead.
|
||||||
|
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/formulas.html][formulas.ipynb]] covers the basics of LTL/PSL formula parsing and
|
||||||
|
printing, with some light operations
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/automata.html][automata.ipynb]] covers translation from formulas to automata,
|
||||||
|
automata printing, and some lights transformations
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/automata-io.html][automata-io.ipynb]] shows how to save and read automata from files
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/piperead.html][piperead.ipynb]] shows how to save and read automata output from other
|
||||||
|
commands, using pipes
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/randaut.html][randaut.ipynb]] shows a simple case where the [[file:randaut.org][=randaut=]] commands
|
||||||
|
generated random automata, which are displayed in a table before and
|
||||||
|
after acceptance simplification
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/accparse.html][accparse.ipynb]] exercises the acceptance condition parser
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/randltl.html][randltl.ipynb]] demonstrates a Python-version of [[file:randltl.org][=randltl=]]
|
||||||
|
- [[https://spot.lrde.epita.fr/ipynb/testingaut.html][testingaut.ipynb]] shows the step necessary to build a testing
|
||||||
|
automaton
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
## -*- coding: utf-8 -*-
|
## -*- coding: utf-8 -*-
|
||||||
## Copyright (C) 2010, 2011, 2012, 2013, 2014 Laboratoire de Recherche
|
## Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015 Laboratoire de
|
||||||
## et Développement de l'Epita (LRDE).
|
## Recherche et Développement de l'Epita (LRDE).
|
||||||
## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
## Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
## et Marie Curie.
|
## et Marie Curie.
|
||||||
|
|
@ -37,6 +37,10 @@ check-readme:
|
||||||
top_srcdir='$(top_srcdir)' \
|
top_srcdir='$(top_srcdir)' \
|
||||||
$(PERL) $(srcdir)/readme.test
|
$(PERL) $(srcdir)/readme.test
|
||||||
|
|
||||||
|
check-ipynb:
|
||||||
|
top_srcdir='$(top_srcdir)' \
|
||||||
|
$(PERL) $(srcdir)/ipynb.test
|
||||||
|
|
||||||
check-includes:
|
check-includes:
|
||||||
CXX='$(CXX)' \
|
CXX='$(CXX)' \
|
||||||
CPPFLAGS='$(AM_CPPFLAGS) $(CPPFLAGS) $(DEFS)' \
|
CPPFLAGS='$(AM_CPPFLAGS) $(CPPFLAGS) $(DEFS)' \
|
||||||
|
|
@ -45,10 +49,8 @@ check-includes:
|
||||||
TOPBUILD='$(top_builddir)' \
|
TOPBUILD='$(top_builddir)' \
|
||||||
$(SHELL) $(srcdir)/includes.test $(TESTHEADER)
|
$(SHELL) $(srcdir)/includes.test $(TESTHEADER)
|
||||||
|
|
||||||
.PHONY: check-80columns check-style check-readme check-includes
|
.PHONY: check-80columns check-style check-readme check-includes check-ipynb
|
||||||
check-local: check-80columns check-style check-readme check-includes
|
check-local: check-80columns check-style check-readme check-includes check-ipynb
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Ensure we have not forgotten to include an header.
|
# Ensure we have not forgotten to include an header.
|
||||||
check-installed-includes:
|
check-installed-includes:
|
||||||
|
|
@ -68,4 +70,10 @@ check-installed-private:
|
||||||
installcheck-local: check-installed-includes check-installed-private
|
installcheck-local: check-installed-includes check-installed-private
|
||||||
|
|
||||||
CLEANFILES = failures incltest.*
|
CLEANFILES = failures incltest.*
|
||||||
EXTRA_DIST = includes.test 80columns.test style.test readme.test private.test
|
EXTRA_DIST = \
|
||||||
|
80columns.test \
|
||||||
|
includes.test \
|
||||||
|
ipynb.test \
|
||||||
|
private.test \
|
||||||
|
readme.test \
|
||||||
|
style.test
|
||||||
|
|
|
||||||
76
src/sanity/ipynb.test
Executable file
76
src/sanity/ipynb.test
Executable file
|
|
@ -0,0 +1,76 @@
|
||||||
|
#! /usr/bin/perl -w
|
||||||
|
# -*- cperl; coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2010, 2015 Laboratoire de Recherche et Développement
|
||||||
|
# de l'Epita (LRDE).
|
||||||
|
#
|
||||||
|
# This file is part of Spot, a model checking library.
|
||||||
|
#
|
||||||
|
# Spot is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Spot 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 General Public
|
||||||
|
# License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Check that all the directories documented in README exist, and that
|
||||||
|
# all directories listed in configure.ac are documented.
|
||||||
|
#
|
||||||
|
# Also has an option --list to print directories which are
|
||||||
|
# documented.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
local $\ = "\n";
|
||||||
|
my $top_srcdir = $ENV{top_srcdir} || "../../";
|
||||||
|
my $top_srcdir_len = length($top_srcdir) + 1;
|
||||||
|
|
||||||
|
my $tut = "$top_srcdir/doc/org/tut.org";
|
||||||
|
my $dir = "$top_srcdir/wrap/python/tests";
|
||||||
|
unless (-f $tut)
|
||||||
|
{
|
||||||
|
print STDERR "$tut not found";
|
||||||
|
exit 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
open(FD, "$tut") or die "$!: cannot open $tut";
|
||||||
|
my $exit_status = 0;
|
||||||
|
my %seen;
|
||||||
|
while (<FD>)
|
||||||
|
{
|
||||||
|
if (m:\]\[([\w-]+\.ipynb)\]\]:)
|
||||||
|
{
|
||||||
|
# print "$1 documented";
|
||||||
|
$seen{$1} = 1;
|
||||||
|
unless (-f "$dir/$1")
|
||||||
|
{
|
||||||
|
print STDERR "notebook mentioned in tut.org does not exist";
|
||||||
|
$exit_status = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(FD);
|
||||||
|
|
||||||
|
open(FD, "$dir/Makefile.am") or die $!;
|
||||||
|
while (<FD>)
|
||||||
|
{
|
||||||
|
if (m:\s([\w-]+\.ipynb):)
|
||||||
|
{
|
||||||
|
# print "$1 exist";
|
||||||
|
unless (exists $seen{$1})
|
||||||
|
{
|
||||||
|
print STDERR "notebook $1 is not mentioned in tut.org";
|
||||||
|
$exit_status = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(FD);
|
||||||
|
|
||||||
|
exit $exit_status;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue