// $Id$ // // Copyright (C) 2003-2012 greg Landrum and Rational Discovery LLC // // @@ All Rights Reserved @@ // This file is part of the RDKit. // The contents are covered by the terms of the BSD license // which is included in the file license.txt, found at the root // of the RDKit source tree. // #include #include #include #include namespace python = boost::python; ExplicitBitVect *createFromBitString(const std::string &bits) { ExplicitBitVect *res = new ExplicitBitVect(bits.length()); FromBitString(*res, bits); return res; } ExplicitBitVect *createFromFPSText(const std::string &fps) { if (fps.length() % 2) { throw ValueErrorException( "input string must have an even number of characters"); } ExplicitBitVect *res = new ExplicitBitVect(fps.length() * 4); UpdateBitVectFromFPSText(*res, fps); return res; } ExplicitBitVect *createFromBinaryText(const std::string &fps) { ExplicitBitVect *res = new ExplicitBitVect(fps.length() * 8); UpdateBitVectFromBinaryText(*res, fps); return res; } struct Utils_wrapper { static void wrap() { python::def("ConvertToExplicit", convertToExplicit, python::return_value_policy(), "Converts a SparseBitVector to an ExplicitBitVector and " "returns the ExplicitBitVector"); python::def( "CreateFromBitString", createFromBitString, python::return_value_policy(), "Creates an ExplicitBitVect from a bit string (string of 0s and 1s)."); python::def("CreateFromFPSText", createFromFPSText, python::return_value_policy(), "Creates an ExplicitBitVect from an FPS string."); python::def( "CreateFromBinaryText", createFromBinaryText, python::return_value_policy(), "Creates an ExplicitBitVect from a binary string (byte array)."); python::def( "InitFromDaylightString", (void (*)(SparseBitVect &, const std::string &))FromDaylightString); python::def( "InitFromDaylightString", (void (*)(ExplicitBitVect &, const std::string &))FromDaylightString, "Fill a BitVect using an ASCII (Daylight) encoding of a fingerprint.\n\ \n\ **Arguments**\n\ - bv: either a _SparseBitVect_ or an _ExplicitBitVect_\n\ - txt: a string with the Daylight encoding (this is the text that\n\ the Daylight tools put in the FP field of a TDT)\n\ \n"); } }; void wrap_Utils() { Utils_wrapper::wrap(); }