<commit_before>/// @file bs_npvec.h
/// @brief vector traits for bs_array with reshape and other numpy_array feautures support
/// @author uentity
/// @version 1.0
/// @date 07.09.2011
/// @copyright This file is part of BlueSky
///            
///            BlueSky 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 3
///            of the License, or (at your option) any later version.
///            
///            BlueSky 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 BlueSky; if not, see <http://www.gnu.org/licenses/>.

#ifndef BS_NPVEC_IC9OQ7JE
#define BS_NPVEC_IC9OQ7JE

#include "bs_vecbase.h"

#include <boost/python.hpp>
#include <boost/python/errors.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_class.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/range.hpp>

// ensure we support 'good' 1.7 version of numpy C API
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <numpy/arrayobject.h>

namespace blue_sky {
namespace detail {

template< class base_t >
class BS_API bs_npvec_impl : public base_t {
public:
	typedef typename base_t::value_type value_type;
	typedef typename base_t::size_type  size_type;

	typedef bs_npvec_impl this_t;
	typedef typename base_t::container container;
	typedef typename base_t::arrbase arrbase;

	typedef typename arrbase::sp_arrbase sp_arrbase;
	typedef typename arrbase::const_pointer const_pointer;

	using base_t::size;
	using base_t::data;
	using base_t::begin;
	using base_t::end;

	// ctors needed by bs_array<commit_msg>bs_npvec: trick to make bs_npvec compile in VS<commit_after>/// @file bs_npvec.h
/// @brief vector traits for bs_array with reshape and other numpy_array feautures support
/// @author uentity
/// @version 1.0
/// @date 07.09.2011
/// @copyright This file is part of BlueSky
///            
///            BlueSky 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 3
///            of the License, or (at your option) any later version.
///            
///            BlueSky 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 BlueSky; if not, see <http://www.gnu.org/licenses/>.

#ifndef BS_NPVEC_IC9OQ7JE
#define BS_NPVEC_IC9OQ7JE

#include "bs_vecbase.h"

#include <boost/python.hpp>
#include <boost/python/errors.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_class.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/iterator/iterator_categories.hpp>
#include <boost/range.hpp>

// ensure we support 'good' 1.7 version of numpy C API
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <numpy/arrayobject.h>

namespace blue_sky {
namespace detail {

template< class vector_t >
class BS_API bs_npvec_impl : public vector_t {
public:
	typedef vector_t base_t;
	typedef typename base_t::value_type value_type;
	typedef typename base_t::size_type  size_type;

	typedef bs_npvec_impl this_t;
	typedef typename base_t::container container;
	typedef typename base_t::arrbase arrbase;

	typedef typename arrbase::sp_arrbase sp_arrbase;
	typedef typename arrbase::const_pointer const_pointer;

	using base_t::size;
	using base_t::data;
	using base_t::begin;
	using base_t::end;

	// ctors needed by bs_array
{'fraction_non_alphanumeric': 0.09032868290375975, 'fraction_numerical': 0.008985575786237881, 'mean_word_length': 3.1389432485322897, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1057307', 'n_tokens_mistral': 1343, 'n_tokens_neox': 1246, 'n_words': 433}