Skip to content
Snippets Groups Projects
adiosPyFunctions.cpp 1.73 KiB
Newer Older
/*
 * adiosPyFunctions.cpp
 *
 *  Created on: Mar 13, 2017
 *      Author: wfg
 */
#include <iostream>

#include "adiosPyFunctions.h"


namespace adios
{

#ifdef HAVE_BOOSTPYTHON
namespace py = boost::python;
#endif

#ifdef HAVE_PYBIND11
namespace py = pybind11;
#endif



Dims ListToVector( const pyList& list )
    const unsigned int length = py::len( list );
    vec.reserve( length );

    for( unsigned int i=0; i<length;i++ )
        vec.push_back( PyCast<std::size_t>( list[i]) );
#ifdef HAVE_BOOSTPYTHON
std::map<std::string, std::string> DictToMap( const pyDict& dictionary )
    std::map<std::string, std::string> parameters;

    pyList keys = dictionary.keys();
    const unsigned int length = py::len( keys );

    for( unsigned int k = 0; k < length; ++k )
        const std::string key( PyCast<std::string>( keys[k] ) );
        const std::string value( PyCast<std::string>( dictionary[ keys[k] ] ) );
        parameters.insert( std::make_pair( key, value ) );
#endif

#ifdef HAVE_PYBIND11
std::map<std::string, std::string> KwargsToMap( const pybind11::kwargs& kwargs )
{
    std::map<std::string, std::string> parameters;

    for( const auto& pair : kwargs )
    {
        const std::string key( PyCast<std::string>( pair.first ) );
        const std::string value( PyCast<std::string>( pair.second ) );
        parameters.insert( std::make_pair( key, value ) );
    }
    return parameters;
}
#endif
bool IsEmpty( pyObject object )
    bool isEmpty = false;
    if( object == boost::python::object() ) isEmpty = true;
    if( object == pybind11::none() ) isEmpty = true;