Skip to content
Snippets Groups Projects
Commit 7efd1cc1 authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

xbob -> bob

parent c01c3382
No related branches found
No related tags found
No related merge requests found
Showing
with 87 additions and 87 deletions
...@@ -28,8 +28,8 @@ install: ...@@ -28,8 +28,8 @@ install:
- "python bootstrap.py" - "python bootstrap.py"
- "CFLAGS=-coverage ./bin/buildout" - "CFLAGS=-coverage ./bin/buildout"
script: script:
- "./bin/python -c 'from xbob.ip.flandmark import get_config; print(get_config())'" - "./bin/python -c 'from bob.ip.flandmark import get_config; print(get_config())'"
- "./bin/coverage run --source=xbob.ip.flandmark ./bin/nosetests -sv" - "./bin/coverage run --source=bob.ip.flandmark ./bin/nosetests -sv"
- "./bin/sphinx-build -b doctest doc sphinx" - "./bin/sphinx-build -b doctest doc sphinx"
- "./bin/sphinx-build -b html doc sphinx" - "./bin/sphinx-build -b html doc sphinx"
after_success: after_success:
......
include README.rst buildout.cfg bootstrap.py include README.rst buildout.cfg bootstrap.py
recursive-include doc *.rst *.py recursive-include doc *.rst *.py
recursive-include xbob *.cpp *.h *.dat recursive-include bob *.cpp *.h *.dat
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
.. Andre Anjos <andre.anjos@idiap.ch> .. Andre Anjos <andre.anjos@idiap.ch>
.. Thu 17 Apr 16:59:12 2014 CEST .. Thu 17 Apr 16:59:12 2014 CEST
.. image:: https://travis-ci.org/bioidiap/xbob.ip.flandmark.svg?branch=master .. image:: https://travis-ci.org/bioidiap/bob.ip.flandmark.svg?branch=master
:target: https://travis-ci.org/bioidiap/xbob.ip.flandmark :target: https://travis-ci.org/bioidiap/bob.ip.flandmark
.. image:: https://coveralls.io/repos/bioidiap/xbob.ip.flandmark/badge.png .. image:: https://coveralls.io/repos/bioidiap/bob.ip.flandmark/badge.png
:target: https://coveralls.io/r/bioidiap/xbob.ip.flandmark :target: https://coveralls.io/r/bioidiap/bob.ip.flandmark
.. image:: http://img.shields.io/github/tag/bioidiap/xbob.ip.flandmark.png .. image:: http://img.shields.io/github/tag/bioidiap/bob.ip.flandmark.png
:target: https://github.com/bioidiap/xbob.ip.flandmark :target: https://github.com/bioidiap/bob.ip.flandmark
.. image:: http://img.shields.io/pypi/v/xbob.ip.flandmark.png .. image:: http://img.shields.io/pypi/v/bob.ip.flandmark.png
:target: https://pypi.python.org/pypi/xbob.ip.flandmark :target: https://pypi.python.org/pypi/bob.ip.flandmark
.. image:: http://img.shields.io/pypi/dm/xbob.ip.flandmark.png .. image:: http://img.shields.io/pypi/dm/bob.ip.flandmark.png
:target: https://pypi.python.org/pypi/xbob.ip.flandmark :target: https://pypi.python.org/pypi/bob.ip.flandmark
============================== ==============================
Python Bindings to Flandmark Python Bindings to Flandmark
...@@ -80,7 +80,7 @@ Testing ...@@ -80,7 +80,7 @@ Testing
You can run a set of tests using the nose test runner:: You can run a set of tests using the nose test runner::
$ nosetests -sv xbob.ap $ nosetests -sv bob.ap
.. warning:: .. warning::
...@@ -97,7 +97,7 @@ You can run our documentation tests using sphinx itself:: ...@@ -97,7 +97,7 @@ You can run our documentation tests using sphinx itself::
You can test overall test coverage with:: You can test overall test coverage with::
$ nosetests --with-coverage --cover-package=xbob.ip.flandmark $ nosetests --with-coverage --cover-package=bob.ip.flandmark
The ``coverage`` egg must be installed for this to work properly. The ``coverage`` egg must be installed for this to work properly.
......
File moved
File moved
File moved
File moved
File moved
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
* @brief Bob/Python extension to flandmark * @brief Bob/Python extension to flandmark
*/ */
#include <xbob.blitz/cppapi.h> #include <bob.blitz/cppapi.h>
#include <xbob.blitz/cleanup.h> #include <bob.blitz/cleanup.h>
#include <xbob.io.base/api.h> #include <bob.io.base/api.h>
#include <structmember.h> #include <structmember.h>
#include <xbob.extension/documentation.h> #include <bob.extension/documentation.h>
#include <boost/shared_ptr.hpp> #include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp> #include <boost/shared_array.hpp>
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
#define CLASS_NAME "Flandmark" #define CLASS_NAME "Flandmark"
static auto s_class = xbob::extension::ClassDoc( static auto s_class = bob::extension::ClassDoc(
XBOB_EXT_MODULE_PREFIX "." CLASS_NAME, BOB_EXT_MODULE_PREFIX "." CLASS_NAME,
"A key-point localization for faces using Flandmark", "A key-point localization for faces using Flandmark",
...@@ -39,7 +39,7 @@ static auto s_class = xbob::extension::ClassDoc( ...@@ -39,7 +39,7 @@ static auto s_class = xbob::extension::ClassDoc(
"\n" "\n"
) )
.add_constructor( .add_constructor(
xbob::extension::FunctionDoc( bob::extension::FunctionDoc(
CLASS_NAME, CLASS_NAME,
"Constructor", "Constructor",
"Initializes the key-point locator with a model." "Initializes the key-point locator with a model."
...@@ -170,7 +170,7 @@ static PyObject* call(PyBobIpFlandmarkObject* self, ...@@ -170,7 +170,7 @@ static PyObject* call(PyBobIpFlandmarkObject* self,
} }
static auto s_call = xbob::extension::FunctionDoc( static auto s_call = bob::extension::FunctionDoc(
"locate", "locate",
"Locates keypoints on a **single** facial bounding-box on the provided image." "Locates keypoints on a **single** facial bounding-box on the provided image."
"This method will locate 8 keypoints inside the bounding-box defined " "This method will locate 8 keypoints inside the bounding-box defined "
...@@ -271,7 +271,7 @@ PyObject* PyBobIpFlandmark_Repr(PyBobIpFlandmarkObject* self) { ...@@ -271,7 +271,7 @@ PyObject* PyBobIpFlandmark_Repr(PyBobIpFlandmarkObject* self) {
/** /**
* Expected output: * Expected output:
* *
* <xbob.ip.flandmark(model='...')> * <bob.ip.flandmark(model='...')>
*/ */
PyObject* retval = PyUnicode_FromFormat("<%s(model='%s')>", PyObject* retval = PyUnicode_FromFormat("<%s(model='%s')>",
......
File moved
File moved
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
#ifdef NO_IMPORT_ARRAY #ifdef NO_IMPORT_ARRAY
#undef NO_IMPORT_ARRAY #undef NO_IMPORT_ARRAY
#endif #endif
#include <xbob.blitz/capi.h> #include <bob.blitz/capi.h>
#include <xbob.blitz/cleanup.h> #include <bob.blitz/cleanup.h>
#include <xbob.io.base/api.h> #include <bob.io.base/api.h>
#include <xbob.extension/documentation.h> #include <bob.extension/documentation.h>
extern PyTypeObject PyBobIpFlandmark_Type; extern PyTypeObject PyBobIpFlandmark_Type;
static auto s_setter = xbob::extension::FunctionDoc( static auto s_setter = bob::extension::FunctionDoc(
"__set_default_model__", "__set_default_model__",
"Internal function to set the default model for the Flandmark class" "Internal function to set the default model for the Flandmark class"
) )
...@@ -49,7 +49,7 @@ PyDoc_STRVAR(module_docstr, "Flandmark keypoint localization library"); ...@@ -49,7 +49,7 @@ PyDoc_STRVAR(module_docstr, "Flandmark keypoint localization library");
#if PY_VERSION_HEX >= 0x03000000 #if PY_VERSION_HEX >= 0x03000000
static PyModuleDef module_definition = { static PyModuleDef module_definition = {
PyModuleDef_HEAD_INIT, PyModuleDef_HEAD_INIT,
XBOB_EXT_MODULE_NAME, BOB_EXT_MODULE_NAME,
module_docstr, module_docstr,
-1, -1,
module_methods, module_methods,
...@@ -69,12 +69,12 @@ static PyObject* create_module (void) { ...@@ -69,12 +69,12 @@ static PyObject* create_module (void) {
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
PyObject* m = PyModule_Create(&module_definition); PyObject* m = PyModule_Create(&module_definition);
# else # else
PyObject* m = Py_InitModule3(XBOB_EXT_MODULE_NAME, module_methods, module_docstr); PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
# endif # endif
if (!m) return 0; if (!m) return 0;
auto m_ = make_safe(m); ///< protects against early returns auto m_ = make_safe(m); ///< protects against early returns
if (PyModule_AddStringConstant(m, "__version__", XBOB_EXT_MODULE_VERSION) < 0) if (PyModule_AddStringConstant(m, "__version__", BOB_EXT_MODULE_VERSION) < 0)
return 0; return 0;
/* register the types to python */ /* register the types to python */
...@@ -82,15 +82,15 @@ static PyObject* create_module (void) { ...@@ -82,15 +82,15 @@ static PyObject* create_module (void) {
if (PyModule_AddObject(m, "Flandmark", (PyObject *)&PyBobIpFlandmark_Type) < 0) return 0; if (PyModule_AddObject(m, "Flandmark", (PyObject *)&PyBobIpFlandmark_Type) < 0) return 0;
/* imports dependencies */ /* imports dependencies */
if (import_xbob_blitz() < 0) { if (import_bob_blitz() < 0) {
PyErr_Print(); PyErr_Print();
PyErr_Format(PyExc_ImportError, "cannot import `%s'", XBOB_EXT_MODULE_NAME); PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
return 0; return 0;
} }
if (import_xbob_io_base() < 0) { if (import_bob_io_base() < 0) {
PyErr_Print(); PyErr_Print();
PyErr_Format(PyExc_ImportError, "cannot import `%s'", XBOB_EXT_MODULE_NAME); PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
return 0; return 0;
} }
...@@ -99,7 +99,7 @@ static PyObject* create_module (void) { ...@@ -99,7 +99,7 @@ static PyObject* create_module (void) {
} }
PyMODINIT_FUNC XBOB_EXT_ENTRY_NAME (void) { PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
return return
# endif # endif
......
...@@ -11,9 +11,9 @@ import numpy ...@@ -11,9 +11,9 @@ import numpy
import functools import functools
import pkg_resources import pkg_resources
import nose.tools import nose.tools
import xbob.io.base import bob.io.base
import xbob.io.image import bob.io.image
import xbob.ip.color import bob.ip.color
from . import Flandmark from . import Flandmark
...@@ -120,8 +120,8 @@ def test_is_outside(): ...@@ -120,8 +120,8 @@ def test_is_outside():
@opencv_available @opencv_available
def test_lena_opencv(): def test_lena_opencv():
img = xbob.io.base.load(LENA) img = bob.io.base.load(LENA)
gray = xbob.ip.color.rgb_to_gray(img) gray = bob.ip.color.rgb_to_gray(img)
(x, y, width, height) = opencv_detect(gray)[0] (x, y, width, height) = opencv_detect(gray)[0]
flm = Flandmark() flm = Flandmark()
...@@ -133,8 +133,8 @@ def test_lena_opencv(): ...@@ -133,8 +133,8 @@ def test_lena_opencv():
def test_lena(): def test_lena():
img = xbob.io.base.load(LENA) img = bob.io.base.load(LENA)
gray = xbob.ip.color.rgb_to_gray(img) gray = bob.ip.color.rgb_to_gray(img)
(x, y, width, height) = LENA_BBX[0] (x, y, width, height) = LENA_BBX[0]
flm = Flandmark() flm = Flandmark()
...@@ -147,8 +147,8 @@ def test_lena(): ...@@ -147,8 +147,8 @@ def test_lena():
@opencv_available @opencv_available
def test_multi_opencv(): def test_multi_opencv():
img = xbob.io.base.load(MULTI) img = bob.io.base.load(MULTI)
gray = xbob.ip.color.rgb_to_gray(img) gray = bob.ip.color.rgb_to_gray(img)
bbx = opencv_detect(gray) bbx = opencv_detect(gray)
flm = Flandmark() flm = Flandmark()
...@@ -161,8 +161,8 @@ def test_multi_opencv(): ...@@ -161,8 +161,8 @@ def test_multi_opencv():
def test_multi(): def test_multi():
img = xbob.io.base.load(MULTI) img = bob.io.base.load(MULTI)
gray = xbob.ip.color.rgb_to_gray(img) gray = bob.ip.color.rgb_to_gray(img)
flm = Flandmark() flm = Flandmark()
for (x, y, width, height) in MULTI_BBX: for (x, y, width, height) in MULTI_BBX:
......
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
#ifdef NO_IMPORT_ARRAY #ifdef NO_IMPORT_ARRAY
#undef NO_IMPORT_ARRAY #undef NO_IMPORT_ARRAY
#endif #endif
#include <xbob.blitz/capi.h> #include <bob.blitz/capi.h>
#include <xbob.blitz/cleanup.h> #include <bob.blitz/cleanup.h>
#include <xbob.io.base/config.h> #include <bob.io.base/config.h>
static int dict_set(PyObject* d, const char* key, const char* value) { static int dict_set(PyObject* d, const char* key, const char* value) {
PyObject* v = Py_BuildValue("s", value); PyObject* v = Py_BuildValue("s", value);
...@@ -89,17 +89,17 @@ static PyObject* numpy_version() { ...@@ -89,17 +89,17 @@ static PyObject* numpy_version() {
} }
/** /**
* xbob.blitz c/c++ api version * bob.blitz c/c++ api version
*/ */
static PyObject* xbob_blitz_version() { static PyObject* bob_blitz_version() {
return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(XBOB_BLITZ_API_VERSION)); return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_BLITZ_API_VERSION));
} }
/** /**
* xbob.io c/c++ api version * bob.io c/c++ api version
*/ */
static PyObject* xbob_io_base_version() { static PyObject* bob_io_base_version() {
return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(XBOB_IO_BASE_API_VERSION)); return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_IO_BASE_API_VERSION));
} }
static PyObject* build_version_dictionary() { static PyObject* build_version_dictionary() {
...@@ -114,8 +114,8 @@ static PyObject* build_version_dictionary() { ...@@ -114,8 +114,8 @@ static PyObject* build_version_dictionary() {
if (!dict_steal(retval, "Compiler", compiler_version())) return 0; if (!dict_steal(retval, "Compiler", compiler_version())) return 0;
if (!dict_steal(retval, "Python", python_version())) return 0; if (!dict_steal(retval, "Python", python_version())) return 0;
if (!dict_steal(retval, "NumPy", numpy_version())) return 0; if (!dict_steal(retval, "NumPy", numpy_version())) return 0;
if (!dict_steal(retval, "xbob.blitz", xbob_blitz_version())) return 0; if (!dict_steal(retval, "bob.blitz", bob_blitz_version())) return 0;
if (!dict_steal(retval, "xbob.io", xbob_io_base_version())) return 0; if (!dict_steal(retval, "bob.io", bob_io_base_version())) return 0;
Py_INCREF(retval); Py_INCREF(retval);
return retval; return retval;
...@@ -132,7 +132,7 @@ PyDoc_STRVAR(module_docstr, ...@@ -132,7 +132,7 @@ PyDoc_STRVAR(module_docstr,
#if PY_VERSION_HEX >= 0x03000000 #if PY_VERSION_HEX >= 0x03000000
static PyModuleDef module_definition = { static PyModuleDef module_definition = {
PyModuleDef_HEAD_INIT, PyModuleDef_HEAD_INIT,
XBOB_EXT_MODULE_NAME, BOB_EXT_MODULE_NAME,
module_docstr, module_docstr,
-1, -1,
module_methods, module_methods,
...@@ -145,13 +145,13 @@ static PyObject* create_module (void) { ...@@ -145,13 +145,13 @@ static PyObject* create_module (void) {
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
PyObject* m = PyModule_Create(&module_definition); PyObject* m = PyModule_Create(&module_definition);
# else # else
PyObject* m = Py_InitModule3(XBOB_EXT_MODULE_NAME, module_methods, module_docstr); PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
# endif # endif
if (!m) return 0; if (!m) return 0;
auto m_ = make_safe(m); ///< protects against early returns auto m_ = make_safe(m); ///< protects against early returns
/* register version numbers and constants */ /* register version numbers and constants */
if (PyModule_AddStringConstant(m, "module", XBOB_EXT_MODULE_VERSION) < 0) if (PyModule_AddStringConstant(m, "module", BOB_EXT_MODULE_VERSION) < 0)
return 0; return 0;
PyObject* externals = build_version_dictionary(); PyObject* externals = build_version_dictionary();
...@@ -159,9 +159,9 @@ static PyObject* create_module (void) { ...@@ -159,9 +159,9 @@ static PyObject* create_module (void) {
if (PyModule_AddObject(m, "externals", externals) < 0) return 0; if (PyModule_AddObject(m, "externals", externals) < 0) return 0;
/* imports dependencies */ /* imports dependencies */
if (import_xbob_blitz() < 0) { if (import_bob_blitz() < 0) {
PyErr_Print(); PyErr_Print();
PyErr_Format(PyExc_ImportError, "cannot import `%s'", XBOB_EXT_MODULE_NAME); PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME);
return 0; return 0;
} }
...@@ -170,7 +170,7 @@ static PyObject* create_module (void) { ...@@ -170,7 +170,7 @@ static PyObject* create_module (void) {
} }
PyMODINIT_FUNC XBOB_EXT_ENTRY_NAME (void) { PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
return return
# endif # endif
......
...@@ -4,31 +4,31 @@ ...@@ -4,31 +4,31 @@
[buildout] [buildout]
parts = scripts parts = scripts
eggs = xbob.ip.flandmark eggs = bob.ip.flandmark
extensions = xbob.buildout extensions = bob.buildout
mr.developer mr.developer
auto-checkout = * auto-checkout = *
develop = src/xbob.extension develop = src/bob.extension
src/xbob.blitz src/bob.blitz
src/xbob.io.base src/bob.io.base
src/xbob.io.image src/bob.io.image
src/xbob.ip.color src/bob.ip.color
src/xbob.ip.draw src/bob.ip.draw
. .
; options for xbob.buildout extension ; options for bob.buildout extension
debug = true debug = true
verbose = true verbose = true
prefixes = /idiap/group/torch5spro/releases/preview/install/linux-x86_64-release prefixes = /idiap/group/torch5spro/releases/preview/install/linux-x86_64-release
/Users/andre/work/bob/b/dbg/ /Users/andre/work/bob/b/dbg/
[sources] [sources]
xbob.extension = git https://github.com/bioidiap/xbob.extension branch=prototype bob.extension = git https://github.com/bioidiap/bob.extension
xbob.blitz = git https://github.com/bioidiap/xbob.blitz bob.blitz = git https://github.com/bioidiap/bob.blitz
xbob.io.base = git https://github.com/bioidiap/xbob.io.base bob.io.base = git https://github.com/bioidiap/bob.io.base
xbob.io.image = git https://github.com/bioidiap/xbob.io.image bob.io.image = git https://github.com/bioidiap/bob.io.image
xbob.ip.color = git https://github.com/bioidiap/xbob.ip.color bob.ip.color = git https://github.com/bioidiap/bob.ip.color
xbob.ip.draw = git https://github.com/bioidiap/xbob.ip.draw bob.ip.draw = git https://github.com/bioidiap/bob.ip.draw
[scripts] [scripts]
recipe = xbob.buildout:scripts recipe = bob.buildout:scripts
...@@ -59,12 +59,12 @@ source_suffix = '.rst' ...@@ -59,12 +59,12 @@ source_suffix = '.rst'
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
project = u'xbob.ip.flandmark' project = u'bob.ip.flandmark'
import time import time
copyright = u'%s, Idiap Research Institute' % time.strftime('%Y') copyright = u'%s, Idiap Research Institute' % time.strftime('%Y')
# Grab the setup entry # Grab the setup entry
distribution = pkg_resources.require('xbob.ip.flandmark')[0] distribution = pkg_resources.require('bob.ip.flandmark')[0]
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
...@@ -130,7 +130,7 @@ if sphinx.__version__ >= "1.0": ...@@ -130,7 +130,7 @@ if sphinx.__version__ >= "1.0":
#html_title = None #html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = 'xbob_ip_flandmark' #html_short_title = 'bob_ip_flandmark'
# The name of an image file (relative to this directory) to place at the top # The name of an image file (relative to this directory) to place at the top
# of the sidebar. # of the sidebar.
...@@ -188,7 +188,7 @@ html_favicon = 'img/favicon.ico' ...@@ -188,7 +188,7 @@ html_favicon = 'img/favicon.ico'
#html_file_suffix = None #html_file_suffix = None
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'xbob_ip_flandmark_doc' htmlhelp_basename = 'bob_ip_flandmark_doc'
# -- Options for LaTeX output -------------------------------------------------- # -- Options for LaTeX output --------------------------------------------------
...@@ -202,7 +202,7 @@ latex_font_size = '10pt' ...@@ -202,7 +202,7 @@ latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [ latex_documents = [
('index', 'xbob_ip_flandmark.tex', u'Python bindings to the Flandmark frontal-face keypoint localizer', u'Biometrics Group, Idiap Research Institute', 'manual'), ('index', 'bob_ip_flandmark.tex', u'Python bindings to the Flandmark frontal-face keypoint localizer', u'Biometrics Group, Idiap Research Institute', 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
...@@ -241,7 +241,7 @@ rst_epilog = """ ...@@ -241,7 +241,7 @@ rst_epilog = """
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'xbob_ip_flandmark', u'Python bindings to Flandmark frontal-face keypoint localizer', [u'Idiap Research Institute'], 1) ('index', 'bob_ip_flandmark', u'Python bindings to Flandmark frontal-face keypoint localizer', [u'Idiap Research Institute'], 1)
] ]
# Default processing flags for sphinx # Default processing flags for sphinx
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment