diff --git a/rocksdb/_rocksdb.pyx b/rocksdb/_rocksdb.pyx index 6eab1fa..39ae114 100644 --- a/rocksdb/_rocksdb.pyx +++ b/rocksdb/_rocksdb.pyx @@ -62,13 +62,6 @@ import weakref cdef extern from "cpp/utils.hpp" namespace "py_rocks": cdef const Slice* vector_data(vector[Slice]&) -# Prepare python for threaded usage. -# Python callbacks (merge, comparator) -# could be executed in a rocksdb background thread (eg. compaction). -cdef extern from "Python.h": - void PyEval_InitThreads() -PyEval_InitThreads() - ## Here comes the stuff to wrap the status to exception cdef check_status(const Status& st): if st.ok(): @@ -100,19 +93,20 @@ cdef check_status(const Status& st): cdef string bytes_to_string(path) except *: - return string(PyBytes_AsString(path), PyBytes_Size(path)) + return string(PyBytes_AsString(path), PyBytes_Size(path)) cdef string_to_bytes(string ob): - return PyBytes_FromStringAndSize(ob.c_str(), ob.size()) + return PyBytes_FromStringAndSize(ob.c_str(), ob.size()) cdef Slice bytes_to_slice(ob) except *: - return Slice(PyBytes_AsString(ob), PyBytes_Size(ob)) + return Slice(PyBytes_AsString(ob), PyBytes_Size(ob)) -cdef Slice* bytes_to_new_slice(ob) except *: - return new Slice(PyBytes_AsString(ob), PyBytes_Size(ob)) +# XXX: unused +#cdef Slice* bytes_to_new_slice(ob) except *: +# return new Slice(PyBytes_AsString(ob), PyBytes_Size(ob)) cdef slice_to_bytes(Slice sl): - return PyBytes_FromStringAndSize(sl.data(), sl.size()) + return PyBytes_FromStringAndSize(sl.data(), sl.size()) ## only for filsystem paths cdef string path_to_string(object path) except *: @@ -126,7 +120,7 @@ cdef string path_to_string(object path) except *: cdef object string_to_path(string path): fs_encoding = sys.getfilesystemencoding().encode('ascii') - return PyUnicode_Decode(path.c_str(), path.size(), fs_encoding, "replace") + return PyUnicode_Decode(path.c_str(), path.size(), fs_encoding, "replace") ## Here comes the stuff for the comparator @cython.internal @@ -311,7 +305,7 @@ cdef cpp_bool full_merge_callback( ret = (ctx).full_merge( slice_to_bytes(key), py_existing_value, - [string_to_bytes(op_list[i]) for i in range(op_list.size())]) + [string_to_bytes(op_list[i]) for i in range( op_list.size())]) if ret[0]: new_value.assign(bytes_to_string(ret[1])) @@ -524,7 +518,7 @@ cdef class BlockBasedTableFactory(PyTableFactory): table_options.cache_index_and_filter_blocks = False if format_version is not None: - table_options.format_version = format_version + table_options.format_version = format_version self.factory.reset(table_factory.NewBlockBasedTableFactory(table_options)) @@ -641,7 +635,7 @@ cdef class _ColumnFamilyHandle: @property def id(self): - return self.handle.GetID() + return self.handle.GetID() @property def weakref(self): @@ -1378,7 +1372,7 @@ cdef class WriteBatch(object): return string_to_bytes(self.batch.Data()) def count(self): - return self.batch.Count() + return self.batch.Count() def __iter__(self): return WriteBatchIterator(self) @@ -1706,7 +1700,7 @@ cdef class DB(object): keys = list(dict.fromkeys(keys)) cdef vector[string] values - values.resize(len(keys)) + values.resize( len(keys)) cdef db.ColumnFamilyHandle* cf_handle cdef vector[db.ColumnFamilyHandle*] cf_handles @@ -1734,7 +1728,8 @@ cdef class DB(object): cdef dict ret_dict = {} cdef list ret_list = [] if as_dict: - for index in range(len(keys)): + for index in range( len(keys)): + index = index if res[index].ok(): ret_dict[keys[index]] = string_to_bytes(values[index]) elif res[index].IsNotFound(): @@ -1744,7 +1739,8 @@ cdef class DB(object): return ret_dict else: - for index in range(len(keys)): + for index in range( len(keys)): + index = index if res[index].ok(): ret_list.append(string_to_bytes(values[index])) elif res[index].IsNotFound(): @@ -1842,7 +1838,7 @@ cdef class DB(object): def iterskeys(self, column_families, *args, **kwargs): cdef vector[db.Iterator*] iters - iters.resize(len(column_families)) + iters.resize( len(column_families)) cdef options.ReadOptions opts cdef db.Iterator* it_ptr cdef KeysIterator it @@ -1867,7 +1863,7 @@ cdef class DB(object): def itersvalues(self, column_families, *args, **kwargs): cdef vector[db.Iterator*] iters - iters.resize(len(column_families)) + iters.resize( len(column_families)) cdef options.ReadOptions opts cdef db.Iterator* it_ptr cdef ValuesIterator it @@ -1891,7 +1887,7 @@ cdef class DB(object): def iterskeys(self, column_families, *args, **kwargs): cdef vector[db.Iterator*] iters - iters.resize(len(column_families)) + iters.resize( len(column_families)) cdef options.ReadOptions opts cdef db.Iterator* it_ptr cdef ItemsIterator it diff --git a/rocksdb/comparator.pxd b/rocksdb/comparator.pxd index f6bb467..2aa34b2 100644 --- a/rocksdb/comparator.pxd +++ b/rocksdb/comparator.pxd @@ -8,7 +8,7 @@ cdef extern from "rocksdb/comparator.h" namespace "rocksdb": const char* Name() int Compare(const Slice&, const Slice&) const - cdef extern const Comparator* BytewiseComparator() nogil except + + cdef extern const Comparator* BytewiseComparator() except + nogil ctypedef int (*compare_func)( void*, @@ -19,5 +19,5 @@ ctypedef int (*compare_func)( cdef extern from "cpp/comparator_wrapper.hpp" namespace "py_rocks": cdef cppclass ComparatorWrapper: - ComparatorWrapper(string, void*, compare_func) nogil except + - void set_info_log(shared_ptr[Logger]) nogil except+ + ComparatorWrapper(string, void*, compare_func) except + nogil + void set_info_log(shared_ptr[Logger]) except+ nogil diff --git a/rocksdb/db.pxd b/rocksdb/db.pxd index 40151ba..262f917 100644 --- a/rocksdb/db.pxd +++ b/rocksdb/db.pxd @@ -11,18 +11,18 @@ from .iterator cimport Iterator cdef extern from "rocksdb/write_batch.h" namespace "rocksdb": cdef cppclass WriteBatch: - WriteBatch() nogil except+ - WriteBatch(string) nogil except+ - void Put(const Slice&, const Slice&) nogil except+ - void Put(ColumnFamilyHandle*, const Slice&, const Slice&) nogil except+ - void Merge(const Slice&, const Slice&) nogil except+ - void Merge(ColumnFamilyHandle*, const Slice&, const Slice&) nogil except+ - void Delete(const Slice&) nogil except+ - void Delete(ColumnFamilyHandle*, const Slice&) nogil except+ - void PutLogData(const Slice&) nogil except+ - void Clear() nogil except+ - const string& Data() nogil except+ - int Count() nogil except+ + WriteBatch() except+ nogil + WriteBatch(string) except+ nogil + void Put(const Slice&, const Slice&) except+ nogil + void Put(ColumnFamilyHandle*, const Slice&, const Slice&) except+ nogil + void Merge(const Slice&, const Slice&) except+ nogil + void Merge(ColumnFamilyHandle*, const Slice&, const Slice&) except+ nogil + void Delete(const Slice&) except+ nogil + void Delete(ColumnFamilyHandle*, const Slice&) except+ nogil + void PutLogData(const Slice&) except+ nogil + void Clear() except+ nogil + const string& Data() except+ nogil + uint32_t Count() except+ nogil cdef extern from "cpp/write_batch_iter_helper.hpp" namespace "py_rocks": cdef enum BatchItemOp "RecordItemsHandler::Optype": @@ -81,95 +81,95 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb": const options.WriteOptions&, ColumnFamilyHandle*, const Slice&, - const Slice&) nogil except+ + const Slice&) except+ nogil Status Delete( const options.WriteOptions&, ColumnFamilyHandle*, - const Slice&) nogil except+ + const Slice&) except+ nogil Status Merge( const options.WriteOptions&, ColumnFamilyHandle*, const Slice&, - const Slice&) nogil except+ + const Slice&) except+ nogil Status Write( const options.WriteOptions&, - WriteBatch*) nogil except+ + WriteBatch*) except+ nogil Status Get( const options.ReadOptions&, ColumnFamilyHandle*, const Slice&, - string*) nogil except+ + string*) except+ nogil vector[Status] MultiGet( const options.ReadOptions&, const vector[ColumnFamilyHandle*]&, const vector[Slice]&, - vector[string]*) nogil except+ + vector[string]*) except+ nogil cpp_bool KeyMayExist( const options.ReadOptions&, ColumnFamilyHandle*, Slice&, string*, - cpp_bool*) nogil except+ + cpp_bool*) except+ nogil cpp_bool KeyMayExist( const options.ReadOptions&, ColumnFamilyHandle*, Slice&, - string*) nogil except+ + string*) except+ nogil Iterator* NewIterator( const options.ReadOptions&, - ColumnFamilyHandle*) nogil except+ + ColumnFamilyHandle*) except+ nogil void NewIterators( const options.ReadOptions&, vector[ColumnFamilyHandle*]&, - vector[Iterator*]*) nogil except+ + vector[Iterator*]*) except+ nogil - const Snapshot* GetSnapshot() nogil except+ + const Snapshot* GetSnapshot() except+ nogil - void ReleaseSnapshot(const Snapshot*) nogil except+ + void ReleaseSnapshot(const Snapshot*) except+ nogil cpp_bool GetProperty( ColumnFamilyHandle*, const Slice&, - string*) nogil except+ + string*) except+ nogil void GetApproximateSizes( ColumnFamilyHandle*, const Range* int, - uint64_t*) nogil except+ + uint64_t*) except+ nogil Status CompactRange( const options.CompactRangeOptions&, ColumnFamilyHandle*, const Slice*, - const Slice*) nogil except+ + const Slice*) except+ nogil Status CreateColumnFamily( const options.ColumnFamilyOptions&, const string&, - ColumnFamilyHandle**) nogil except+ + ColumnFamilyHandle**) except+ nogil Status DropColumnFamily( - ColumnFamilyHandle*) nogil except+ - - int NumberLevels(ColumnFamilyHandle*) nogil except+ - int MaxMemCompactionLevel(ColumnFamilyHandle*) nogil except+ - int Level0StopWriteTrigger(ColumnFamilyHandle*) nogil except+ - const string& GetName() nogil except+ - const options.Options& GetOptions(ColumnFamilyHandle*) nogil except+ - Status Flush(const options.FlushOptions&, ColumnFamilyHandle*) nogil except+ - Status DisableFileDeletions() nogil except+ - Status EnableFileDeletions() nogil except+ - Status Close() nogil except+ + ColumnFamilyHandle*) except+ nogil + + int NumberLevels(ColumnFamilyHandle*) except+ nogil + int MaxMemCompactionLevel(ColumnFamilyHandle*) except+ nogil + int Level0StopWriteTrigger(ColumnFamilyHandle*) except+ nogil + const string& GetName() except+ nogil + const options.Options& GetOptions(ColumnFamilyHandle*) except+ nogil + Status Flush(const options.FlushOptions&, ColumnFamilyHandle*) except+ nogil + Status DisableFileDeletions() except+ nogil + Status EnableFileDeletions() except+ nogil + Status Close() except+ nogil # TODO: Status GetSortedWalFiles(VectorLogPtr& files) # TODO: SequenceNumber GetLatestSequenceNumber() @@ -177,9 +177,9 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb": # SequenceNumber seq_number, # unique_ptr[TransactionLogIterator]*) - Status DeleteFile(string) nogil except+ - void GetLiveFilesMetaData(vector[LiveFileMetaData]*) nogil except+ - void GetColumnFamilyMetaData(ColumnFamilyHandle*, ColumnFamilyMetaData*) nogil except+ + Status DeleteFile(string) except+ nogil + void GetLiveFilesMetaData(vector[LiveFileMetaData]*) except+ nogil + void GetColumnFamilyMetaData(ColumnFamilyHandle*, ColumnFamilyMetaData*) except+ nogil ColumnFamilyHandle* DefaultColumnFamily() Status TryCatchUpWithPrimary() nogil except+ @@ -187,14 +187,14 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb": cdef Status DB_Open "rocksdb::DB::Open"( const options.Options&, const string&, - DB**) nogil except+ + DB**) except+ nogil cdef Status DB_Open_ColumnFamilies "rocksdb::DB::Open"( const options.Options&, const string&, const vector[ColumnFamilyDescriptor]&, vector[ColumnFamilyHandle*]*, - DB**) nogil except+ + DB**) except+ nogil cdef Status DB_OpenAsSecondary "rocksdb::DB::OpenAsSecondary"( const options.Options&, @@ -214,7 +214,7 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb": const options.Options&, const string&, DB**, - cpp_bool) nogil except+ + cpp_bool) except+ nogil cdef Status DB_OpenForReadOnly_ColumnFamilies "rocksdb::DB::OpenForReadOnly"( const options.Options&, @@ -222,26 +222,26 @@ cdef extern from "rocksdb/db.h" namespace "rocksdb": const vector[ColumnFamilyDescriptor]&, vector[ColumnFamilyHandle*]*, DB**, - cpp_bool) nogil except+ + cpp_bool) except+ nogil cdef Status RepairDB(const string& dbname, const options.Options&) cdef Status ListColumnFamilies "rocksdb::DB::ListColumnFamilies" ( const options.Options&, const string&, - vector[string]*) nogil except+ + vector[string]*) except+ nogil cdef cppclass ColumnFamilyHandle: - const string& GetName() nogil except+ - int GetID() nogil except+ + const string& GetName() except+ nogil + uint32_t GetID() except+ nogil cdef cppclass ColumnFamilyDescriptor: - ColumnFamilyDescriptor() nogil except+ + ColumnFamilyDescriptor() except+ nogil ColumnFamilyDescriptor( const string&, - const options.ColumnFamilyOptions&) nogil except+ + const options.ColumnFamilyOptions&) except+ nogil string name options.ColumnFamilyOptions options cdef extern from "rocksdb/convenience.h" namespace "rocksdb": - void CancelAllBackgroundWork(DB*, cpp_bool) nogil except+ + void CancelAllBackgroundWork(DB*, cpp_bool) except+ nogil diff --git a/rocksdb/iterator.pxd b/rocksdb/iterator.pxd index 748e4db..99a79df 100644 --- a/rocksdb/iterator.pxd +++ b/rocksdb/iterator.pxd @@ -4,13 +4,13 @@ from .status cimport Status cdef extern from "rocksdb/iterator.h" namespace "rocksdb": cdef cppclass Iterator: - cpp_bool Valid() nogil except+ - void SeekToFirst() nogil except+ - void SeekToLast() nogil except+ - void Seek(const Slice&) nogil except+ - void Next() nogil except+ - void Prev() nogil except+ - void SeekForPrev(const Slice&) nogil except+ - Slice key() nogil except+ - Slice value() nogil except+ - Status status() nogil except+ + cpp_bool Valid() except+ nogil + void SeekToFirst() except+ nogil + void SeekToLast() except+ nogil + void Seek(const Slice&) except+ nogil + void Next() except+ nogil + void Prev() except+ nogil + void SeekForPrev(const Slice&) except+ nogil + Slice key() except+ nogil + Slice value() except+ nogil + Status status() except+ nogil diff --git a/rocksdb/logger.pxd b/rocksdb/logger.pxd index d0b7b72..31c29c9 100644 --- a/rocksdb/logger.pxd +++ b/rocksdb/logger.pxd @@ -2,4 +2,4 @@ cdef extern from "rocksdb/env.h" namespace "rocksdb": cdef cppclass Logger: pass - void Log(Logger*, const char*, ...) nogil except+ + void Log(Logger*, const char*, ...) except+ nogil diff --git a/rocksdb/merge_operator.pxd b/rocksdb/merge_operator.pxd index 510d5cd..42af21b 100644 --- a/rocksdb/merge_operator.pxd +++ b/rocksdb/merge_operator.pxd @@ -35,7 +35,7 @@ ctypedef cpp_bool (*partial_merge_func)( cdef extern from "cpp/merge_operator_wrapper.hpp" namespace "py_rocks": cdef cppclass AssociativeMergeOperatorWrapper: - AssociativeMergeOperatorWrapper(string, void*, merge_func) nogil except+ + AssociativeMergeOperatorWrapper(string, void*, merge_func) except+ nogil cdef cppclass MergeOperatorWrapper: MergeOperatorWrapper( @@ -43,4 +43,4 @@ cdef extern from "cpp/merge_operator_wrapper.hpp" namespace "py_rocks": void*, void*, full_merge_func, - partial_merge_func) nogil except+ + partial_merge_func) except+ nogil diff --git a/rocksdb/options.pxd b/rocksdb/options.pxd index c2f2430..651e51d 100644 --- a/rocksdb/options.pxd +++ b/rocksdb/options.pxd @@ -105,7 +105,7 @@ cdef extern from "rocksdb/options.h" namespace "rocksdb": cpp_bool allow_concurrent_memtable_write cpp_bool enable_write_thread_adaptive_yield shared_ptr[Cache] row_cache - void IncreaseParallelism(int) nogil except+ + void IncreaseParallelism(int) except+ nogil cdef cppclass ColumnFamilyOptions: ColumnFamilyOptions() diff --git a/rocksdb/slice_transform.pxd b/rocksdb/slice_transform.pxd index dd73502..bfd4c2f 100644 --- a/rocksdb/slice_transform.pxd +++ b/rocksdb/slice_transform.pxd @@ -9,10 +9,10 @@ cdef extern from "rocksdb/slice_transform.h" namespace "rocksdb": pass cdef const SliceTransform* ST_NewCappedPrefixTransform "rocksdb::NewCappedPrefixTransform"( - size_t) nogil except+ + size_t) except+ nogil cdef const SliceTransform* ST_NewFixedPrefixTransform "rocksdb::NewFixedPrefixTransform"( - size_t) nogil except+ + size_t) except+ nogil ctypedef Slice (*transform_func)( void*, @@ -39,5 +39,5 @@ cdef extern from "cpp/slice_transform_wrapper.hpp" namespace "py_rocks": void*, transform_func, in_domain_func, - in_range_func) nogil except+ - void set_info_log(shared_ptr[Logger]) nogil except+ + in_range_func) except+ nogil + void set_info_log(shared_ptr[Logger]) except+ nogil diff --git a/rocksdb/statistics.pxd b/rocksdb/statistics.pxd index 1028c8a..d673bce 100644 --- a/rocksdb/statistics.pxd +++ b/rocksdb/statistics.pxd @@ -10,4 +10,4 @@ cdef extern from "rocksdb/statistics.h" namespace "rocksdb": kAll cdef cppclass Statistics: - void set_stats_level(StatsLevel) nogil except+ + void set_stats_level(StatsLevel) except+ nogil diff --git a/rocksdb/status.pxd b/rocksdb/status.pxd index f92bbf1..0dbee00 100644 --- a/rocksdb/status.pxd +++ b/rocksdb/status.pxd @@ -12,4 +12,4 @@ cdef extern from "rocksdb/status.h" namespace "rocksdb": cpp_bool IsIOError() nogil const cpp_bool IsMergeInProgress() nogil const cpp_bool IsIncomplete() nogil const - string ToString() nogil except+ + string ToString() except+ nogil diff --git a/rocksdb/std_memory.pxd b/rocksdb/std_memory.pxd index ea573ee..4d543ad 100644 --- a/rocksdb/std_memory.pxd +++ b/rocksdb/std_memory.pxd @@ -1,7 +1,7 @@ cdef extern from "" namespace "std": cdef cppclass shared_ptr[T]: - shared_ptr() nogil except+ - shared_ptr(T*) nogil except+ - void reset() nogil except+ - void reset(T*) nogil except+ - T* get() nogil except+ + shared_ptr() except+ nogil + shared_ptr(T*) except+ nogil + void reset() except+ nogil + void reset(T*) except+ nogil + T* get() except+ nogil diff --git a/rocksdb/types.pxd b/rocksdb/types.pxd index b8c9ca9..7b06008 100644 --- a/rocksdb/types.pxd +++ b/rocksdb/types.pxd @@ -22,7 +22,7 @@ cdef extern from "rocksdb/types.h" namespace "rocksdb": FullKey() except+ FullKey(const Slice&, const SequenceNumber&, EntryType) except+ - string DebugString(cpp_bool hex) nogil except+ - void clear() nogil except+ + string DebugString(cpp_bool hex) except+ nogil + void clear() except+ nogil cpp_bool ParseFullKey(const Slice&, FullKey*)