Compare commits

...

No commits in common. "master" and "gh-pages" have entirely different histories.

136 changed files with 20245 additions and 8429 deletions

4
.buildinfo Normal file
View file

@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 4d3041f50dec281b5735d5211a8aadcb
tags: 645f666f9bcd5a90fca523b33c5a78b7

View file

@ -1,83 +0,0 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: build
on:
push:
branches:
- master
jobs:
manylinux:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Cache .a files
id: build-cache
uses: actions/cache@v2
with:
key: ${{ runner.os }}
path: |
src/rocksdb/libsnappy.a
src/rocksdb/liblz4.a
src/rocksdb/libbz2.a
src/rocksdb/libzstd.a
src/rocksdb/libz.a
src/rocksdb/librocksdb.a
- name: Install requirements
run: sudo apt-get install build-essential binutils cmake python3-cffi
- name: Make static library files
if: steps.build-cache.outputs.cache-hit != 'true'
run: make clean && make
- name: Build wheels
run: /bin/bash scripts/build.sh
- uses: actions/upload-artifact@v2
with:
name: wheels
path: dist/
- name: Install twine
run: python -m pip install twine
macos:
strategy:
fail-fast: true
matrix:
python:
- 3.7
- 3.8
- 3.9
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Cache .a files
uses: actions/cache@v2
with:
key: ${{ runner.os }}
path: |
src/rocksdb/libsnappy.a
src/rocksdb/liblz4.a
src/rocksdb/libbz2.a
src/rocksdb/libzstd.a
src/rocksdb/libz.a
src/rocksdb/librocksdb.a
- name: Setup python${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: "${{ matrix.python }}"
- name: Make static library files
run: make clean && make
- name: Install requires
run: python -m pip install cython twine wheel
- name: Build wheel
run: python setup.py bdist_wheel
- uses: actions/upload-artifact@v2
with:
name: wheels
path: dist/
# - name: Publishing to pypi
# run: twine upload --skip-existing --disable-progress-bar dist/*.whl
# env:
# TWINE_USERNAME: __token__
# TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}

View file

@ -1,70 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '37 3 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

11
.gitignore vendored
View file

@ -1,11 +0,0 @@
build
docs/_build
.pytest_cache
.eggs/
.tox/
*.egg-info/
*.pyc
*.so
__pycache__
rocksdb/_rocksdb.cpp

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "src/rocksdb"]
path = src/rocksdb
url = https://github.com/lbryio/rocksdb

View file

@ -1,27 +0,0 @@
Copyright (c) 2014, Stephan Hofmockel
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of the author nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -1,4 +0,0 @@
include README.md
include rocksdb/cpp/*.hpp
recursive-include rocksdb *.pxd
recursive-include rocksdb *.pyx

View file

@ -1,44 +0,0 @@
all: src/rocksdb/librocksdb.a
JOBS=8
src/rocksdb/librocksdb.a:
make \
-e EXTRA_CXXFLAGS="-fPIC" \
-e EXTRA_CFLAGS="-fPIC" \
-C src/rocksdb \
-j $(JOBS) \
libsnappy.a \
liblz4.a \
libbz2.a \
libzstd.a \
libz.a
(cd src/rocksdb && mkdir -p build && cd build && cmake \
-DWITH_SNAPPY=1 \
-DWITH_LZ4=1 \
-DWITH_ZLIB=1 \
-DWITH_ZSTD=1 \
-DWITH_GFLAGS=0 \
-DROCKSDB_BUILD_SHARED=0 \
-DWITH_TOOLS=0 \
-DWITH_BENCHMARK_TOOLS=0 \
-DWITH_CORE_TOOLS=0 \
-DWITH_JEMALLOC=0 \
-DCMAKE_BUILD_TYPE=Release \
-DSnappy_INCLUDE_DIRS=../snappy-1.1.8/ \
-DSnappy_LIBRARIES=../snappy-1.1.8/build \
-Dlz4_INCLUDE_DIRS=../lz4-1.9.3/lib \
-Dlz4_LIBRARIES=../lz4-1.9.3/lib \
-Dzstd_INCLUDE_DIRS=../zstd-1.4.9/lib \
-Dzstd_LIBRARIES=../zstd-1.4.9/lib \
-DZLIB_INCLUDE_DIR=../zlib-1.2.12 \
-DZLIB_LIBRARY=./zlib-1.2.12 \
-DCMAKE_CXX_FLAGS="-fPIC -I../snappy-1.1.8/build -I../zstd-1.4.9/lib/dictBuilder" \
.. && make -j $(JOBS))
cp src/rocksdb/build/librocksdb.a src/rocksdb/librocksdb.a
clean:
rm -rf src/rocksdb/build
make -C src/rocksdb clean

View file

@ -1,27 +0,0 @@
## lbry-rocksdb
### Note
The `python-rocksdb` and `pyrocksdb` packages haven't been updated in a long time - this repo is a fork of python-rocksdb with many of the PRs to it merged, and with [bunch of updates and improvements](https://github.com/iFA88/python-rocksdb) from @iFA88 and @mosquito.
### Install from pip
pip install lbry-rocksdb
### Install for development / from source
sudo apt install build-essential binutils
git clone https://github.com/lbryio/lbry-rocksdb.git
cd lbry-rocksdb
git submodule update --init --recursive
git pull --recurse-submodules
make clean && make
pip install -e .
python -m unittest discover . -v
### Quick Usage Guide
>>> import rocksdb
>>> db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
>>> db.put(b'a', b'data')
>>> print db.get(b'a')
b'data'

View file

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.AdvancedColumnFamilyOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.ColumnFamilyOptions" href="pyrocksdb.ColumnFamilyOptions.html" />
<link rel="prev" title="pyrocksdb.Options" href="pyrocksdb.Options.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-advancedcolumnfamilyoptions">
<h1>pyrocksdb.AdvancedColumnFamilyOptions<a class="headerlink" href="#pyrocksdb-advancedcolumnfamilyoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.AdvancedColumnFamilyOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">AdvancedColumnFamilyOptions</code><a class="headerlink" href="#pyrocksdb.AdvancedColumnFamilyOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.AdvancedColumnFamilyOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.AdvancedColumnFamilyOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.AdvancedColumnFamilyOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.AdvancedColumnFamilyOptions.__init__" title="pyrocksdb.AdvancedColumnFamilyOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_write_buffer_number</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_base</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_multiplier</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.Options.html" title="previous chapter">pyrocksdb.Options</a></li>
<li>Next: <a href="pyrocksdb.ColumnFamilyOptions.html" title="next chapter">pyrocksdb.ColumnFamilyOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.AdvancedColumnFamilyOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.Blob &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.ColumnFamilyHandle" href="pyrocksdb.ColumnFamilyHandle.html" />
<link rel="prev" title="python rocksdb API" href="../python_rocksdb.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-blob">
<h1>pyrocksdb.Blob<a class="headerlink" href="#pyrocksdb-blob" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.Blob">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">Blob</code><a class="headerlink" href="#pyrocksdb.Blob" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.Blob.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.Blob</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.Blob.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.Blob.__init__" title="pyrocksdb.Blob.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">data</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">status</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="../python_rocksdb.html" title="previous chapter">python rocksdb API</a></li>
<li>Next: <a href="pyrocksdb.ColumnFamilyHandle.html" title="next chapter">pyrocksdb.ColumnFamilyHandle</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.Blob.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,157 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.ColumnFamilyDescriptor &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.VectorColumnFamilyDescriptor" href="pyrocksdb.VectorColumnFamilyDescriptor.html" />
<link rel="prev" title="pyrocksdb.ColumnFamilyHandle" href="pyrocksdb.ColumnFamilyHandle.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-columnfamilydescriptor">
<h1>pyrocksdb.ColumnFamilyDescriptor<a class="headerlink" href="#pyrocksdb-columnfamilydescriptor" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.ColumnFamilyDescriptor">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">ColumnFamilyDescriptor</code><a class="headerlink" href="#pyrocksdb.ColumnFamilyDescriptor" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.ColumnFamilyDescriptor.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.ColumnFamilyDescriptor</em>, <em>arg0: str</em>, <em>arg1: pyrocksdb.ColumnFamilyOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.ColumnFamilyDescriptor.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.ColumnFamilyDescriptor.__init__" title="pyrocksdb.ColumnFamilyDescriptor.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.ColumnFamilyHandle.html" title="previous chapter">pyrocksdb.ColumnFamilyHandle</a></li>
<li>Next: <a href="pyrocksdb.VectorColumnFamilyDescriptor.html" title="next chapter">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.ColumnFamilyDescriptor.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,160 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.ColumnFamilyHandle &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.ColumnFamilyDescriptor" href="pyrocksdb.ColumnFamilyDescriptor.html" />
<link rel="prev" title="pyrocksdb.Blob" href="pyrocksdb.Blob.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-columnfamilyhandle">
<h1>pyrocksdb.ColumnFamilyHandle<a class="headerlink" href="#pyrocksdb-columnfamilyhandle" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.ColumnFamilyHandle">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">ColumnFamilyHandle</code><a class="headerlink" href="#pyrocksdb.ColumnFamilyHandle" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.ColumnFamilyHandle.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.ColumnFamilyHandle</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.ColumnFamilyHandle.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.ColumnFamilyHandle.__init__" title="pyrocksdb.ColumnFamilyHandle.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_name</span></code>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.Blob.html" title="previous chapter">pyrocksdb.Blob</a></li>
<li>Next: <a href="pyrocksdb.ColumnFamilyDescriptor.html" title="next chapter">pyrocksdb.ColumnFamilyDescriptor</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.ColumnFamilyHandle.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,187 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.ColumnFamilyOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.WriteOptions" href="pyrocksdb.WriteOptions.html" />
<link rel="prev" title="pyrocksdb.AdvancedColumnFamilyOptions" href="pyrocksdb.AdvancedColumnFamilyOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-columnfamilyoptions">
<h1>pyrocksdb.ColumnFamilyOptions<a class="headerlink" href="#pyrocksdb-columnfamilyoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.ColumnFamilyOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">ColumnFamilyOptions</code><a class="headerlink" href="#pyrocksdb.ColumnFamilyOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.ColumnFamilyOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.ColumnFamilyOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.ColumnFamilyOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">OptimizeLevelStyleCompaction</span></code>(self, …)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyrocksdb.ColumnFamilyOptions.__init__" title="pyrocksdb.ColumnFamilyOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_write_buffer_number</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">sync</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">table_factory</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_base</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_multiplier</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">write_buffer_size</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.AdvancedColumnFamilyOptions.html" title="previous chapter">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li>Next: <a href="pyrocksdb.WriteOptions.html" title="next chapter">pyrocksdb.WriteOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.ColumnFamilyOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

187
_generate/pyrocksdb.DB.html Normal file
View file

@ -0,0 +1,187 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.DB &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.DBOptions" href="pyrocksdb.DBOptions.html" />
<link rel="prev" title="pyrocksdb.IteratorWrapper" href="pyrocksdb.IteratorWrapper.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-db">
<h1>pyrocksdb.DB<a class="headerlink" href="#pyrocksdb-db" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.DB">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">DB</code><a class="headerlink" href="#pyrocksdb.DB" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.DB.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.DB</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.DB.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.DB.__init__" title="pyrocksdb.DB.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">close</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">compact_range</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">create_column_family</span></code>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">delete</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">iterator</span></code>(self, arg0)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">open</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">open_for_readonly</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">put</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">write</span></code>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.IteratorWrapper.html" title="previous chapter">pyrocksdb.IteratorWrapper</a></li>
<li>Next: <a href="pyrocksdb.DBOptions.html" title="next chapter">pyrocksdb.DBOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.DB.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,193 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.DBOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.Options" href="pyrocksdb.Options.html" />
<link rel="prev" title="pyrocksdb.DB" href="pyrocksdb.DB.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-dboptions">
<h1>pyrocksdb.DBOptions<a class="headerlink" href="#pyrocksdb-dboptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.DBOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">DBOptions</code><a class="headerlink" href="#pyrocksdb.DBOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.DBOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.DBOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.DBOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">IncreaseParallelism</span></code>(self, total_threads)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyrocksdb.DBOptions.__init__" title="pyrocksdb.DBOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">create_if_missing</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">error_if_exists</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_file_opening_threads</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_open_files</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_total_wal_size</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">paranoid_checks</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">statistics</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">use_fsync</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.DB.html" title="previous chapter">pyrocksdb.DB</a></li>
<li>Next: <a href="pyrocksdb.Options.html" title="next chapter">pyrocksdb.Options</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.DBOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,185 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.IteratorWrapper &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.DB" href="pyrocksdb.DB.html" />
<link rel="prev" title="pyrocksdb.VectorColumnFamilyHandle" href="pyrocksdb.VectorColumnFamilyHandle.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-iteratorwrapper">
<h1>pyrocksdb.IteratorWrapper<a class="headerlink" href="#pyrocksdb-iteratorwrapper" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.IteratorWrapper">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">IteratorWrapper</code><a class="headerlink" href="#pyrocksdb.IteratorWrapper" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.IteratorWrapper.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyrocksdb.IteratorWrapper.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">key</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">next</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">prev</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">seek</span></code>(self, arg0)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">seek_for_prev</span></code>(self, arg0)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">seek_to_first</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">seek_to_last</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">status</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">valid</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">value</span></code>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.VectorColumnFamilyHandle.html" title="previous chapter">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li>Next: <a href="pyrocksdb.DB.html" title="next chapter">pyrocksdb.DB</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.IteratorWrapper.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.LRUCacheOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.Status" href="pyrocksdb.Status.html" />
<link rel="prev" title="pyrocksdb.TransactionOptions" href="pyrocksdb.TransactionOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-lrucacheoptions">
<h1>pyrocksdb.LRUCacheOptions<a class="headerlink" href="#pyrocksdb-lrucacheoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.LRUCacheOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">LRUCacheOptions</code><a class="headerlink" href="#pyrocksdb.LRUCacheOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.LRUCacheOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.LRUCacheOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.LRUCacheOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.LRUCacheOptions.__init__" title="pyrocksdb.LRUCacheOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">capacity</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">high_pri_pool_ratio</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">memory_allocator</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">num_shard_bits</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">strict_capacity_limit</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.TransactionOptions.html" title="previous chapter">pyrocksdb.TransactionOptions</a></li>
<li>Next: <a href="pyrocksdb.Status.html" title="next chapter">pyrocksdb.Status</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.LRUCacheOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,214 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.Options &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.AdvancedColumnFamilyOptions" href="pyrocksdb.AdvancedColumnFamilyOptions.html" />
<link rel="prev" title="pyrocksdb.DBOptions" href="pyrocksdb.DBOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-options">
<h1>pyrocksdb.Options<a class="headerlink" href="#pyrocksdb-options" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.Options">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">Options</code><a class="headerlink" href="#pyrocksdb.Options" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.Options.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.Options</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.Options.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">IncreaseParallelism</span></code>(self, total_threads)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">OptimizeLevelStyleCompaction</span></code>(self, …)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.Options.__init__" title="pyrocksdb.Options.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">create_if_missing</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">error_if_exists</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_file_opening_threads</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_open_files</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_total_wal_size</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">max_write_buffer_number</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">paranoid_checks</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">statistics</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">sync</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">table_factory</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_base</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">target_file_size_multiplier</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">use_fsync</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">write_buffer_size</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.DBOptions.html" title="previous chapter">pyrocksdb.DBOptions</a></li>
<li>Next: <a href="pyrocksdb.AdvancedColumnFamilyOptions.html" title="next chapter">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.Options.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.ReadOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.TransactionDBOptions" href="pyrocksdb.TransactionDBOptions.html" />
<link rel="prev" title="pyrocksdb.WriteOptions" href="pyrocksdb.WriteOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-readoptions">
<h1>pyrocksdb.ReadOptions<a class="headerlink" href="#pyrocksdb-readoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.ReadOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">ReadOptions</code><a class="headerlink" href="#pyrocksdb.ReadOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.ReadOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.ReadOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.ReadOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.ReadOptions.__init__" title="pyrocksdb.ReadOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">snapshot</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.WriteOptions.html" title="previous chapter">pyrocksdb.WriteOptions</a></li>
<li>Next: <a href="pyrocksdb.TransactionDBOptions.html" title="next chapter">pyrocksdb.TransactionDBOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.ReadOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,157 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.Snapshot &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Installing" href="../installation.html" />
<link rel="prev" title="pyrocksdb.transaction_wrapper" href="pyrocksdb.transaction_wrapper.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-snapshot">
<h1>pyrocksdb.Snapshot<a class="headerlink" href="#pyrocksdb-snapshot" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.Snapshot">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">Snapshot</code><a class="headerlink" href="#pyrocksdb.Snapshot" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.Snapshot.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.Snapshot</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.Snapshot.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.Snapshot.__init__" title="pyrocksdb.Snapshot.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.transaction_wrapper.html" title="previous chapter">pyrocksdb.transaction_wrapper</a></li>
<li>Next: <a href="../installation.html" title="next chapter">Installing</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.Snapshot.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,274 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.Status &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.WriteBatch" href="pyrocksdb.WriteBatch.html" />
<link rel="prev" title="pyrocksdb.LRUCacheOptions" href="pyrocksdb.LRUCacheOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-status">
<h1>pyrocksdb.Status<a class="headerlink" href="#pyrocksdb-status" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.Status">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">Status</code><a class="headerlink" href="#pyrocksdb.Status" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.Status.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.Status</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.Status.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.Status.__init__" title="pyrocksdb.Status.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">code</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_aborted</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_busy</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_compaction_too_large</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_corruption</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_deadlock</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_expired</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_in_complete</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_invalid_argument</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_io_error</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_lock_limit</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_memory_limit</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_no_space</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_not_found</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_not_supported</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_path_not_found</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_shutdown_in_progress</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_time_out</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">is_try_again</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">ok</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">to_string</span></code>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kAborted</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kBusy</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kCompactionTooLarge</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kCorruption</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kExpired</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kIOError</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kIncomplete</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kInvalidArgument</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kMergeInProgress</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kNotFound</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kNotSupported</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kOk</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kShutdownInProgress</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kTimedOut</span></code></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">kTryAgain</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.LRUCacheOptions.html" title="previous chapter">pyrocksdb.LRUCacheOptions</a></li>
<li>Next: <a href="pyrocksdb.WriteBatch.html" title="next chapter">pyrocksdb.WriteBatch</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.Status.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,157 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.TransactionDBOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.TransactionOptions" href="pyrocksdb.TransactionOptions.html" />
<link rel="prev" title="pyrocksdb.ReadOptions" href="pyrocksdb.ReadOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-transactiondboptions">
<h1>pyrocksdb.TransactionDBOptions<a class="headerlink" href="#pyrocksdb-transactiondboptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.TransactionDBOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">TransactionDBOptions</code><a class="headerlink" href="#pyrocksdb.TransactionDBOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.TransactionDBOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.TransactionDBOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.TransactionDBOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.TransactionDBOptions.__init__" title="pyrocksdb.TransactionDBOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.ReadOptions.html" title="previous chapter">pyrocksdb.ReadOptions</a></li>
<li>Next: <a href="pyrocksdb.TransactionOptions.html" title="next chapter">pyrocksdb.TransactionOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.TransactionDBOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.TransactionOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.LRUCacheOptions" href="pyrocksdb.LRUCacheOptions.html" />
<link rel="prev" title="pyrocksdb.TransactionDBOptions" href="pyrocksdb.TransactionDBOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-transactionoptions">
<h1>pyrocksdb.TransactionOptions<a class="headerlink" href="#pyrocksdb-transactionoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.TransactionOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">TransactionOptions</code><a class="headerlink" href="#pyrocksdb.TransactionOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.TransactionOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.TransactionOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.TransactionOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.TransactionOptions.__init__" title="pyrocksdb.TransactionOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
<p class="rubric">Attributes</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_snapshot</span></code></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.TransactionDBOptions.html" title="previous chapter">pyrocksdb.TransactionDBOptions</a></li>
<li>Next: <a href="pyrocksdb.LRUCacheOptions.html" title="next chapter">pyrocksdb.LRUCacheOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.TransactionOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.VectorColumnFamilyDescriptor &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.VectorColumnFamilyHandle" href="pyrocksdb.VectorColumnFamilyHandle.html" />
<link rel="prev" title="pyrocksdb.ColumnFamilyDescriptor" href="pyrocksdb.ColumnFamilyDescriptor.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-vectorcolumnfamilydescriptor">
<h1>pyrocksdb.VectorColumnFamilyDescriptor<a class="headerlink" href="#pyrocksdb-vectorcolumnfamilydescriptor" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.VectorColumnFamilyDescriptor">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">VectorColumnFamilyDescriptor</code><a class="headerlink" href="#pyrocksdb.VectorColumnFamilyDescriptor" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.VectorColumnFamilyDescriptor.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#pyrocksdb.VectorColumnFamilyDescriptor.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Overloaded function.</p>
<ol class="arabic simple">
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyDescriptor) -&gt; None</p></li>
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyDescriptor, arg0: pyrocksdb.VectorColumnFamilyDescriptor) -&gt; None</p></li>
</ol>
<p>Copy constructor</p>
<ol class="arabic simple" start="3">
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyDescriptor, arg0: iterable) -&gt; None</p></li>
</ol>
</dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.VectorColumnFamilyDescriptor.__init__" title="pyrocksdb.VectorColumnFamilyDescriptor.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">append</span></code>(self, x)</p></td>
<td><p>Add an item to the end of the list</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">extend</span></code>(self, L)</p></td>
<td><p>Extend the list by appending all the items in the given list</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">insert</span></code>(self, i, x)</p></td>
<td><p>Insert an item at a given position.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">pop</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.ColumnFamilyDescriptor.html" title="previous chapter">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li>Next: <a href="pyrocksdb.VectorColumnFamilyHandle.html" title="next chapter">pyrocksdb.VectorColumnFamilyHandle</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.VectorColumnFamilyDescriptor.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,184 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.VectorColumnFamilyHandle &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.IteratorWrapper" href="pyrocksdb.IteratorWrapper.html" />
<link rel="prev" title="pyrocksdb.VectorColumnFamilyDescriptor" href="pyrocksdb.VectorColumnFamilyDescriptor.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-vectorcolumnfamilyhandle">
<h1>pyrocksdb.VectorColumnFamilyHandle<a class="headerlink" href="#pyrocksdb-vectorcolumnfamilyhandle" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.VectorColumnFamilyHandle">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">VectorColumnFamilyHandle</code><a class="headerlink" href="#pyrocksdb.VectorColumnFamilyHandle" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.VectorColumnFamilyHandle.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#pyrocksdb.VectorColumnFamilyHandle.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Overloaded function.</p>
<ol class="arabic simple">
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyHandle) -&gt; None</p></li>
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyHandle, arg0: pyrocksdb.VectorColumnFamilyHandle) -&gt; None</p></li>
</ol>
<p>Copy constructor</p>
<ol class="arabic simple" start="3">
<li><p>__init__(self: pyrocksdb.VectorColumnFamilyHandle, arg0: iterable) -&gt; None</p></li>
</ol>
</dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.VectorColumnFamilyHandle.__init__" title="pyrocksdb.VectorColumnFamilyHandle.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">append</span></code>(self, x)</p></td>
<td><p>Add an item to the end of the list</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">count</span></code>(self, x)</p></td>
<td><p>Return the number of times <code class="docutils literal notranslate"><span class="pre">x</span></code> appears in the list</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">extend</span></code>(self, L)</p></td>
<td><p>Extend the list by appending all the items in the given list</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">insert</span></code>(self, i, x)</p></td>
<td><p>Insert an item at a given position.</p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">pop</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">remove</span></code>(self, x)</p></td>
<td><p>Remove the first item from the list whose value is x.</p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.VectorColumnFamilyDescriptor.html" title="previous chapter">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li>Next: <a href="pyrocksdb.IteratorWrapper.html" title="next chapter">pyrocksdb.IteratorWrapper</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.VectorColumnFamilyHandle.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,163 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.WriteBatch &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.transaction_db" href="pyrocksdb.transaction_db.html" />
<link rel="prev" title="pyrocksdb.Status" href="pyrocksdb.Status.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-writebatch">
<h1>pyrocksdb.WriteBatch<a class="headerlink" href="#pyrocksdb-writebatch" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.WriteBatch">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">WriteBatch</code><a class="headerlink" href="#pyrocksdb.WriteBatch" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.WriteBatch.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.WriteBatch</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.WriteBatch.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.WriteBatch.__init__" title="pyrocksdb.WriteBatch.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">delete</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">put</span></code>(*args, **kwargs)</p></td>
<td><p>Overloaded function.</p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.Status.html" title="previous chapter">pyrocksdb.Status</a></li>
<li>Next: <a href="pyrocksdb.transaction_db.html" title="next chapter">pyrocksdb.transaction_db</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.WriteBatch.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,157 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.WriteOptions &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.ReadOptions" href="pyrocksdb.ReadOptions.html" />
<link rel="prev" title="pyrocksdb.ColumnFamilyOptions" href="pyrocksdb.ColumnFamilyOptions.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-writeoptions">
<h1>pyrocksdb.WriteOptions<a class="headerlink" href="#pyrocksdb-writeoptions" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.WriteOptions">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">WriteOptions</code><a class="headerlink" href="#pyrocksdb.WriteOptions" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.WriteOptions.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.WriteOptions</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.WriteOptions.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.WriteOptions.__init__" title="pyrocksdb.WriteOptions.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.ColumnFamilyOptions.html" title="previous chapter">pyrocksdb.ColumnFamilyOptions</a></li>
<li>Next: <a href="pyrocksdb.ReadOptions.html" title="next chapter">pyrocksdb.ReadOptions</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.WriteOptions.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.transaction_db &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.transaction_wrapper" href="pyrocksdb.transaction_wrapper.html" />
<link rel="prev" title="pyrocksdb.WriteBatch" href="pyrocksdb.WriteBatch.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-transaction-db">
<h1>pyrocksdb.transaction_db<a class="headerlink" href="#pyrocksdb-transaction-db" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.transaction_db">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">transaction_db</code><a class="headerlink" href="#pyrocksdb.transaction_db" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.transaction_db.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>self: pyrocksdb.transaction_db</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#pyrocksdb.transaction_db.__init__" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyrocksdb.transaction_db.__init__" title="pyrocksdb.transaction_db.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">begin_transaction</span></code>(self, write_options, …)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">close</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get</span></code>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_snapshot</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">open</span></code>(self, arg0, arg1, arg2)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">put</span></code>(self, arg0, arg1, arg2)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">release_snapshot</span></code>(self, arg0)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.WriteBatch.html" title="previous chapter">pyrocksdb.WriteBatch</a></li>
<li>Next: <a href="pyrocksdb.transaction_wrapper.html" title="next chapter">pyrocksdb.transaction_wrapper</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.transaction_db.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -0,0 +1,185 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>pyrocksdb.transaction_wrapper &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="pyrocksdb.Snapshot" href="pyrocksdb.Snapshot.html" />
<link rel="prev" title="pyrocksdb.transaction_db" href="pyrocksdb.transaction_db.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="pyrocksdb-transaction-wrapper">
<h1>pyrocksdb.transaction_wrapper<a class="headerlink" href="#pyrocksdb-transaction-wrapper" title="Permalink to this headline"></a></h1>
<dl class="class">
<dt id="pyrocksdb.transaction_wrapper">
<em class="property">class </em><code class="descclassname">pyrocksdb.</code><code class="descname">transaction_wrapper</code><a class="headerlink" href="#pyrocksdb.transaction_wrapper" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="pyrocksdb.transaction_wrapper.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyrocksdb.transaction_wrapper.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<p class="rubric">Methods</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">clear_snapshot</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">commit</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get</span></code>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_for_update</span></code>(self, options, key, …)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_snapshot</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">put</span></code>(self, arg0, arg1)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">rollback</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">rollback_to_savepoint</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_savepoint</span></code>(self)</p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_snapshot</span></code>(self)</p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
<li><a href="../python_rocksdb.html">python rocksdb API</a><ul>
<li>Previous: <a href="pyrocksdb.transaction_db.html" title="previous chapter">pyrocksdb.transaction_db</a></li>
<li>Next: <a href="pyrocksdb.Snapshot.html" title="next chapter">pyrocksdb.Snapshot</a></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="../_sources/_generate/pyrocksdb.transaction_wrapper.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

102
_modules/index.html Normal file
View file

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Overview: module code &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1>All modules for which code is available</h1>
<ul><li><a href="pyrocksdb.html">pyrocksdb</a></li>
</ul>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../index.html">Documentation overview</a><ul>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
</body>
</html>

View file

@ -0,0 +1,30 @@
pyrocksdb.AdvancedColumnFamilyOptions
=====================================
.. currentmodule:: pyrocksdb
.. autoclass:: AdvancedColumnFamilyOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~AdvancedColumnFamilyOptions.__init__
.. rubric:: Attributes
.. autosummary::
~AdvancedColumnFamilyOptions.max_write_buffer_number
~AdvancedColumnFamilyOptions.target_file_size_base
~AdvancedColumnFamilyOptions.target_file_size_multiplier

View file

@ -0,0 +1,29 @@
pyrocksdb.Blob
==============
.. currentmodule:: pyrocksdb
.. autoclass:: Blob
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~Blob.__init__
.. rubric:: Attributes
.. autosummary::
~Blob.data
~Blob.status

View file

@ -0,0 +1,22 @@
pyrocksdb.ColumnFamilyDescriptor
================================
.. currentmodule:: pyrocksdb
.. autoclass:: ColumnFamilyDescriptor
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~ColumnFamilyDescriptor.__init__

View file

@ -0,0 +1,23 @@
pyrocksdb.ColumnFamilyHandle
============================
.. currentmodule:: pyrocksdb
.. autoclass:: ColumnFamilyHandle
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~ColumnFamilyHandle.__init__
~ColumnFamilyHandle.get_name

View file

@ -0,0 +1,34 @@
pyrocksdb.ColumnFamilyOptions
=============================
.. currentmodule:: pyrocksdb
.. autoclass:: ColumnFamilyOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~ColumnFamilyOptions.OptimizeLevelStyleCompaction
~ColumnFamilyOptions.__init__
.. rubric:: Attributes
.. autosummary::
~ColumnFamilyOptions.max_write_buffer_number
~ColumnFamilyOptions.sync
~ColumnFamilyOptions.table_factory
~ColumnFamilyOptions.target_file_size_base
~ColumnFamilyOptions.target_file_size_multiplier
~ColumnFamilyOptions.write_buffer_size

View file

@ -0,0 +1,32 @@
pyrocksdb.DB
============
.. currentmodule:: pyrocksdb
.. autoclass:: DB
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~DB.__init__
~DB.close
~DB.compact_range
~DB.create_column_family
~DB.delete
~DB.get
~DB.iterator
~DB.open
~DB.open_for_readonly
~DB.put
~DB.write

View file

@ -0,0 +1,36 @@
pyrocksdb.DBOptions
===================
.. currentmodule:: pyrocksdb
.. autoclass:: DBOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~DBOptions.IncreaseParallelism
~DBOptions.__init__
.. rubric:: Attributes
.. autosummary::
~DBOptions.create_if_missing
~DBOptions.error_if_exists
~DBOptions.max_file_opening_threads
~DBOptions.max_open_files
~DBOptions.max_total_wal_size
~DBOptions.paranoid_checks
~DBOptions.statistics
~DBOptions.use_fsync

View file

@ -0,0 +1,31 @@
pyrocksdb.IteratorWrapper
=========================
.. currentmodule:: pyrocksdb
.. autoclass:: IteratorWrapper
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~IteratorWrapper.key
~IteratorWrapper.next
~IteratorWrapper.prev
~IteratorWrapper.seek
~IteratorWrapper.seek_for_prev
~IteratorWrapper.seek_to_first
~IteratorWrapper.seek_to_last
~IteratorWrapper.status
~IteratorWrapper.valid
~IteratorWrapper.value

View file

@ -0,0 +1,32 @@
pyrocksdb.LRUCacheOptions
=========================
.. currentmodule:: pyrocksdb
.. autoclass:: LRUCacheOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~LRUCacheOptions.__init__
.. rubric:: Attributes
.. autosummary::
~LRUCacheOptions.capacity
~LRUCacheOptions.high_pri_pool_ratio
~LRUCacheOptions.memory_allocator
~LRUCacheOptions.num_shard_bits
~LRUCacheOptions.strict_capacity_limit

View file

@ -0,0 +1,43 @@
pyrocksdb.Options
=================
.. currentmodule:: pyrocksdb
.. autoclass:: Options
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~Options.IncreaseParallelism
~Options.OptimizeLevelStyleCompaction
~Options.__init__
.. rubric:: Attributes
.. autosummary::
~Options.create_if_missing
~Options.error_if_exists
~Options.max_file_opening_threads
~Options.max_open_files
~Options.max_total_wal_size
~Options.max_write_buffer_number
~Options.paranoid_checks
~Options.statistics
~Options.sync
~Options.table_factory
~Options.target_file_size_base
~Options.target_file_size_multiplier
~Options.use_fsync
~Options.write_buffer_size

View file

@ -0,0 +1,28 @@
pyrocksdb.ReadOptions
=====================
.. currentmodule:: pyrocksdb
.. autoclass:: ReadOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~ReadOptions.__init__
.. rubric:: Attributes
.. autosummary::
~ReadOptions.snapshot

View file

@ -0,0 +1,22 @@
pyrocksdb.Snapshot
==================
.. currentmodule:: pyrocksdb
.. autoclass:: Snapshot
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~Snapshot.__init__

View file

@ -0,0 +1,63 @@
pyrocksdb.Status
================
.. currentmodule:: pyrocksdb
.. autoclass:: Status
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~Status.__init__
~Status.code
~Status.is_aborted
~Status.is_busy
~Status.is_compaction_too_large
~Status.is_corruption
~Status.is_deadlock
~Status.is_expired
~Status.is_in_complete
~Status.is_invalid_argument
~Status.is_io_error
~Status.is_lock_limit
~Status.is_memory_limit
~Status.is_no_space
~Status.is_not_found
~Status.is_not_supported
~Status.is_path_not_found
~Status.is_shutdown_in_progress
~Status.is_time_out
~Status.is_try_again
~Status.ok
~Status.to_string
.. rubric:: Attributes
.. autosummary::
~Status.kAborted
~Status.kBusy
~Status.kCompactionTooLarge
~Status.kCorruption
~Status.kExpired
~Status.kIOError
~Status.kIncomplete
~Status.kInvalidArgument
~Status.kMergeInProgress
~Status.kNotFound
~Status.kNotSupported
~Status.kOk
~Status.kShutdownInProgress
~Status.kTimedOut
~Status.kTryAgain

View file

@ -0,0 +1,22 @@
pyrocksdb.TransactionDBOptions
==============================
.. currentmodule:: pyrocksdb
.. autoclass:: TransactionDBOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~TransactionDBOptions.__init__

View file

@ -0,0 +1,28 @@
pyrocksdb.TransactionOptions
============================
.. currentmodule:: pyrocksdb
.. autoclass:: TransactionOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~TransactionOptions.__init__
.. rubric:: Attributes
.. autosummary::
~TransactionOptions.set_snapshot

View file

@ -0,0 +1,26 @@
pyrocksdb.VectorColumnFamilyDescriptor
======================================
.. currentmodule:: pyrocksdb
.. autoclass:: VectorColumnFamilyDescriptor
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~VectorColumnFamilyDescriptor.__init__
~VectorColumnFamilyDescriptor.append
~VectorColumnFamilyDescriptor.extend
~VectorColumnFamilyDescriptor.insert
~VectorColumnFamilyDescriptor.pop

View file

@ -0,0 +1,28 @@
pyrocksdb.VectorColumnFamilyHandle
==================================
.. currentmodule:: pyrocksdb
.. autoclass:: VectorColumnFamilyHandle
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~VectorColumnFamilyHandle.__init__
~VectorColumnFamilyHandle.append
~VectorColumnFamilyHandle.count
~VectorColumnFamilyHandle.extend
~VectorColumnFamilyHandle.insert
~VectorColumnFamilyHandle.pop
~VectorColumnFamilyHandle.remove

View file

@ -0,0 +1,24 @@
pyrocksdb.WriteBatch
====================
.. currentmodule:: pyrocksdb
.. autoclass:: WriteBatch
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~WriteBatch.__init__
~WriteBatch.delete
~WriteBatch.put

View file

@ -0,0 +1,22 @@
pyrocksdb.WriteOptions
======================
.. currentmodule:: pyrocksdb
.. autoclass:: WriteOptions
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~WriteOptions.__init__

View file

@ -0,0 +1,29 @@
pyrocksdb.transaction\_db
=========================
.. currentmodule:: pyrocksdb
.. autoclass:: transaction_db
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~transaction_db.__init__
~transaction_db.begin_transaction
~transaction_db.close
~transaction_db.get
~transaction_db.get_snapshot
~transaction_db.open
~transaction_db.put
~transaction_db.release_snapshot

View file

@ -0,0 +1,31 @@
pyrocksdb.transaction\_wrapper
==============================
.. currentmodule:: pyrocksdb
.. autoclass:: transaction_wrapper
.. automethod:: __init__
.. rubric:: Methods
.. autosummary::
~transaction_wrapper.clear_snapshot
~transaction_wrapper.commit
~transaction_wrapper.get
~transaction_wrapper.get_for_update
~transaction_wrapper.get_snapshot
~transaction_wrapper.put
~transaction_wrapper.rollback
~transaction_wrapper.rollback_to_savepoint
~transaction_wrapper.set_savepoint
~transaction_wrapper.set_snapshot

58
_sources/index.rst.txt Normal file
View file

@ -0,0 +1,58 @@
Welcome to python-rocksdb's documentation!
==========================================
Overview
--------
Python bindings to the C++ interface of http://rocksdb.org/ using pybind11::
import pyrocksdb
db = pyrocksdb.DB()
opts = pyrocksdb.Options()
# for multi-thread
opts.IncreaseParallelism()
opts.OptimizeLevelStyleCompaction()
opts.create_if_missing = True
s = db.open(opts, '/path/to/db')
assert(s.ok())
# put
opts = pyrocksdb.WriteOptions()
s = db.put(opts, b"key1", b"value1")
assert (s.ok())
# get
opts = pyrocksdb.ReadOptions()
blob = db.get(opts, b"key1")
print (blob.data) # b"value1"
print (blob.status.ok()) # true
#delete
opts = pyrocksdb.WriteOptions()
s = db.delete(opts, b"key1")
assert(s.ok())
db.close()
Tested with python3.7
.. toctree::
:maxdepth: 2
python_rocksdb
Instructions how to install <installation>
Tutorial <tutorial/index>
Changelog <changelog>
Contributing
------------
Source can be found on `github <https://github.com/twmht/python-rocksdb/tree/pybind11>`_.
Feel free to fork and send pull-requests or create issues on the
`github issue tracker <https://github.com/twmht/python-rocksdb/issues>`_
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View file

@ -0,0 +1,15 @@
Installing
==========
.. highlight:: bash
From source
***********
Building python-rocksdb
-----------------------
.. code-block:: bash
git clone https://github.com/twmht/python-rocksdb.git --recursive -b pybind11
cd python-rocksdb
python setup.py install

View file

@ -0,0 +1 @@
.. automodule:: pyrocksdb

View file

@ -0,0 +1,145 @@
Basic Usage of python-rocksdb
*****************************
Column Family
=============
python-rocksdb also supports column family ::
db = pyrocksdb.DB()
opts = pyrocksdb.Options()
opts.create_if_missing = True
s = db.open(opts, 'path/to/db')
# create new column family
copts = pyrocksdb.ColumnFamilyOptions()
s, cf = db.create_column_family(copts, "new_cf")
del cf
db.close()
# open db with the column families
cfd1 = pyrocksdb.ColumnFamilyDescriptor(pyrocksdb.DefaultColumnFamilyName, pyrocksdb.ColumnFamilyOptions())
cfd2 = pyrocksdb.ColumnFamilyDescriptor("new_cf", pyrocksdb.ColumnFamilyOptions())
cfds = pyrocksdb.VectorColumnFamilyDescriptor()
cfds.append(cfd1)
cfds.append(cfd2)
db_opts = pyrocksdb.DBOptions()
# column family handles
s, cfhs = db.open(db_opts, 'path/to/db', cfds)
assert(s.ok())
assert(len(cfhs) == 2)
assert(cfhs[0].get_name() == pyrocksdb.DefaultColumnFamilyName)
assert(cfhs[1].get_name() =='new_cf')
wopts = pyrocksdb.WriteOptions()
ropts = pyrocksdb.ReadOptions()
s = db.put(wopts, cfhs[0], b'key', b'value')
assert(s.ok())
b = db.get(ropts, cfhs[0], b'key')
assert(b.status.ok())
assert(b.data == b'value')
b = db.get(ropts, cfhs[1], b'key')
assert(b.status.is_not_found())
s = db.put(wopts, cfhs[1], b'key', b'value2')
assert(s.ok())
b = db.get(ropts, cfhs[1], b'key')
assert(b.status.ok())
assert(b.data == b'value2')
b = db.get(ropts, cfhs[0], b'key')
assert(b.status.ok())
assert(b.data == b'value')
s = db.delete(wopts, cfhs[0], b'key')
assert(s.ok())
b = db.get(ropts, cfhs[0], b'key')
assert(b.status.is_not_found())
s = db.delete(wopts, cfhs[1], b'key')
assert(s.ok())
b = db.get(ropts, cfhs[1], b'key')
assert(b.status.is_not_found())
# write batch
update = pyrocksdb.WriteBatch()
update.put(cfhs[0], b'key1', b'value1')
update.put(cfhs[0], b'key2', b'value2')
update.delete(cfhs[0], 'key1')
s = db.write(wopts, update)
assert(s.ok())
b = db.get(ropts, cfhs[0], b'key1')
assert(b.status.is_not_found())
b = db.get(ropts, cfhs[0], b'key2')
assert(b.status.ok())
assert(b.data == b'value2')
for cfh in cfhs:
del cfh
db.close()
Wrtie Batch
===========
It is also possible to gather modifications and
apply them in a single operation ::
update = pyrocksdb.WriteBatch()
# collect the operations
update.put(b'key1', b'value1')
update.put(b'key2', b'value2')
update.delete(b'key1')
opts = pyrocksdb.WriteOptions()
# Apply these operatios in a single operation
s = db.write(opts, update)
assert s.ok()
opts = pyrocksdb.ReadOptions()
blob = db.get(opts, b'key1')
assert blob.status.is_not_found()
blob = db.get(opts, b'key2')
assert blob.status.ok()
assert blob.data == b'value2'
db.close()
Iteration
=========
Iterators behave slightly different than expected. Per default they are not
valid. So you have to call one of its seek methods first ::
opts = pyrocksdb.WriteOptions()
s = {b'key1': b'value1', b'key2': b'value2', b'key3': b'value3'}
for k, v in s.items():
db.put(opts, k, v)
opts = pyrocksdb.ReadOptions()
it = db.iterator(opts)
it.seek_to_first()
assert it.status().ok()
assert it.valid()
for k, v in s.items():
assert it.key() == k
assert it.value() == v
it.next()
assert not it.valid()
it.seek(b'key1')
assert it.valid()
assert it.key() == b'key1'
assert it.value() == b'value1'
it.seek(b'key2')
assert it.valid()
assert it.key() == b'key2'
assert it.value() == b'value2'
it.seek(b'key4')
assert not it.valid()
it.seek_for_prev(b'key0')
assert not it.valid()
it.seek_for_prev(b'key4')
assert it.valid()

701
_static/alabaster.css Normal file
View file

@ -0,0 +1,701 @@
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: Georgia, serif;
font-size: 17px;
background-color: #fff;
color: #000;
margin: 0;
padding: 0;
}
div.document {
width: 940px;
margin: 30px auto 0 auto;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 220px;
}
div.sphinxsidebar {
width: 220px;
font-size: 14px;
line-height: 1.5;
}
hr {
border: 1px solid #B1B4B6;
}
div.body {
background-color: #fff;
color: #3E4349;
padding: 0 30px 0 30px;
}
div.body > .section {
text-align: left;
}
div.footer {
width: 940px;
margin: 20px auto 30px auto;
font-size: 14px;
color: #888;
text-align: right;
}
div.footer a {
color: #888;
}
p.caption {
font-family: inherit;
font-size: inherit;
}
div.relations {
display: none;
}
div.sphinxsidebar a {
color: #444;
text-decoration: none;
border-bottom: 1px dotted #999;
}
div.sphinxsidebar a:hover {
border-bottom: 1px solid #999;
}
div.sphinxsidebarwrapper {
padding: 18px 10px;
}
div.sphinxsidebarwrapper p.logo {
padding: 0;
margin: -10px 0 0 0px;
text-align: center;
}
div.sphinxsidebarwrapper h1.logo {
margin-top: -10px;
text-align: center;
margin-bottom: 5px;
text-align: left;
}
div.sphinxsidebarwrapper h1.logo-name {
margin-top: 0px;
}
div.sphinxsidebarwrapper p.blurb {
margin-top: 0;
font-style: normal;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Georgia, serif;
color: #444;
font-size: 24px;
font-weight: normal;
margin: 0 0 5px 0;
padding: 0;
}
div.sphinxsidebar h4 {
font-size: 20px;
}
div.sphinxsidebar h3 a {
color: #444;
}
div.sphinxsidebar p.logo a,
div.sphinxsidebar h3 a,
div.sphinxsidebar p.logo a:hover,
div.sphinxsidebar h3 a:hover {
border: none;
}
div.sphinxsidebar p {
color: #555;
margin: 10px 0;
}
div.sphinxsidebar ul {
margin: 10px 0;
padding: 0;
color: #000;
}
div.sphinxsidebar ul li.toctree-l1 > a {
font-size: 120%;
}
div.sphinxsidebar ul li.toctree-l2 > a {
font-size: 110%;
}
div.sphinxsidebar input {
border: 1px solid #CCC;
font-family: Georgia, serif;
font-size: 1em;
}
div.sphinxsidebar hr {
border: none;
height: 1px;
color: #AAA;
background: #AAA;
text-align: left;
margin-left: 0;
width: 50%;
}
div.sphinxsidebar .badge {
border-bottom: none;
}
div.sphinxsidebar .badge:hover {
border-bottom: none;
}
/* To address an issue with donation coming after search */
div.sphinxsidebar h3.donation {
margin-top: 10px;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #004B6B;
text-decoration: underline;
}
a:hover {
color: #6D4100;
text-decoration: underline;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Georgia, serif;
font-weight: normal;
margin: 30px 0px 10px 0px;
padding: 0;
}
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
div.body h2 { font-size: 180%; }
div.body h3 { font-size: 150%; }
div.body h4 { font-size: 130%; }
div.body h5 { font-size: 100%; }
div.body h6 { font-size: 100%; }
a.headerlink {
color: #DDD;
padding: 0 4px;
text-decoration: none;
}
a.headerlink:hover {
color: #444;
background: #EAEAEA;
}
div.body p, div.body dd, div.body li {
line-height: 1.4em;
}
div.admonition {
margin: 20px 0px;
padding: 10px 30px;
background-color: #EEE;
border: 1px solid #CCC;
}
div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fafafa;
}
div.admonition p.admonition-title {
font-family: Georgia, serif;
font-weight: normal;
font-size: 24px;
margin: 0 0 10px 0;
padding: 0;
line-height: 1;
}
div.admonition p.last {
margin-bottom: 0;
}
div.highlight {
background-color: #fff;
}
dt:target, .highlight {
background: #FAF3E8;
}
div.warning {
background-color: #FCC;
border: 1px solid #FAA;
}
div.danger {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.error {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.caution {
background-color: #FCC;
border: 1px solid #FAA;
}
div.attention {
background-color: #FCC;
border: 1px solid #FAA;
}
div.important {
background-color: #EEE;
border: 1px solid #CCC;
}
div.note {
background-color: #EEE;
border: 1px solid #CCC;
}
div.tip {
background-color: #EEE;
border: 1px solid #CCC;
}
div.hint {
background-color: #EEE;
border: 1px solid #CCC;
}
div.seealso {
background-color: #EEE;
border: 1px solid #CCC;
}
div.topic {
background-color: #EEE;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre, tt, code {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.9em;
}
.hll {
background-color: #FFC;
margin: 0 -12px;
padding: 0 12px;
display: block;
}
img.screenshot {
}
tt.descname, tt.descclassname, code.descname, code.descclassname {
font-size: 0.95em;
}
tt.descname, code.descname {
padding-right: 0.08em;
}
img.screenshot {
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils {
border: 1px solid #888;
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils td, table.docutils th {
border: 1px solid #888;
padding: 0.25em 0.7em;
}
table.field-list, table.footnote {
border: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
table.footnote {
margin: 15px 0;
width: 100%;
border: 1px solid #EEE;
background: #FDFDFD;
font-size: 0.9em;
}
table.footnote + table.footnote {
margin-top: -15px;
border-top: none;
}
table.field-list th {
padding: 0 0.8em 0 0;
}
table.field-list td {
padding: 0;
}
table.field-list p {
margin-bottom: 0.8em;
}
/* Cloned from
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
*/
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
table.footnote td.label {
width: .1px;
padding: 0.3em 0 0.3em 0.5em;
}
table.footnote td {
padding: 0.3em 0.5em;
}
dl {
margin: 0;
padding: 0;
}
dl dd {
margin-left: 30px;
}
blockquote {
margin: 0 0 0 30px;
padding: 0;
}
ul, ol {
/* Matches the 30px from the narrow-screen "li > ul" selector below */
margin: 10px 0 10px 30px;
padding: 0;
}
pre {
background: #EEE;
padding: 7px 30px;
margin: 15px 0px;
line-height: 1.3em;
}
div.viewcode-block:target {
background: #ffd;
}
dl pre, blockquote pre, li pre {
margin-left: 0;
padding-left: 30px;
}
tt, code {
background-color: #ecf0f3;
color: #222;
/* padding: 1px 2px; */
}
tt.xref, code.xref, a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fff;
}
a.reference {
text-decoration: none;
border-bottom: 1px dotted #004B6B;
}
/* Don't put an underline on images */
a.image-reference, a.image-reference:hover {
border-bottom: none;
}
a.reference:hover {
border-bottom: 1px solid #6D4100;
}
a.footnote-reference {
text-decoration: none;
font-size: 0.7em;
vertical-align: top;
border-bottom: 1px dotted #004B6B;
}
a.footnote-reference:hover {
border-bottom: 1px solid #6D4100;
}
a:hover tt, a:hover code {
background: #EEE;
}
@media screen and (max-width: 870px) {
div.sphinxsidebar {
display: none;
}
div.document {
width: 100%;
}
div.documentwrapper {
margin-left: 0;
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
}
div.bodywrapper {
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
}
ul {
margin-left: 0;
}
li > ul {
/* Matches the 30px from the "ul, ol" selector above */
margin-left: 30px;
}
.document {
width: auto;
}
.footer {
width: auto;
}
.bodywrapper {
margin: 0;
}
.footer {
width: auto;
}
.github {
display: none;
}
}
@media screen and (max-width: 875px) {
body {
margin: 0;
padding: 20px 30px;
}
div.documentwrapper {
float: none;
background: #fff;
}
div.sphinxsidebar {
display: block;
float: none;
width: 102.5%;
margin: 50px -30px -20px -30px;
padding: 10px 20px;
background: #333;
color: #FFF;
}
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
div.sphinxsidebar h3 a {
color: #fff;
}
div.sphinxsidebar a {
color: #AAA;
}
div.sphinxsidebar p.logo {
display: none;
}
div.document {
width: 100%;
margin: 0;
}
div.footer {
display: none;
}
div.bodywrapper {
margin: 0;
}
div.body {
min-height: 0;
padding: 0;
}
.rtd_doc_footer {
display: none;
}
.document {
width: auto;
}
.footer {
width: auto;
}
.footer {
width: auto;
}
.github {
display: none;
}
}
/* misc. */
.revsys-inline {
display: none!important;
}
/* Make nested-list/multi-paragraph items look better in Releases changelog
* pages. Without this, docutils' magical list fuckery causes inconsistent
* formatting between different release sub-lists.
*/
div#changelog > div.section > ul > li > p:only-child {
margin-bottom: 0;
}
/* Hide fugly table cell borders in ..bibliography:: directive output */
table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
border: none;
/* Below needed in some edge cases; if not applied, bottom shadows appear */
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
/* relbar */
.related {
line-height: 30px;
width: 100%;
font-size: 0.9rem;
}
.related.top {
border-bottom: 1px solid #EEE;
margin-bottom: 20px;
}
.related.bottom {
border-top: 1px solid #EEE;
}
.related ul {
padding: 0;
margin: 0;
list-style: none;
}
.related li {
display: inline;
}
nav#rellinks {
float: right;
}
nav#rellinks li+li:before {
content: "|";
}
nav#breadcrumbs li+li:before {
content: "\00BB";
}
/* Hide certain items when printing */
@media print {
div.related {
display: none;
}
}

748
_static/basic.css Normal file
View file

@ -0,0 +1,748 @@
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
word-wrap: break-word;
overflow-wrap : break-word;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
padding: 0.25em;
box-sizing: border-box;
}
div.sphinxsidebar #searchbox input[type="submit"] {
float: left;
width: 20%;
border-left: none;
padding: 0.25em;
box-sizing: border-box;
}
img {
border: 0;
max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
margin-left: auto;
margin-right: auto;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable ul {
margin-top: 0;
margin-bottom: 0;
list-style-type: none;
}
table.indextable > tbody > tr > td > ul {
padding-left: 0em;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- domain module index --------------------------------------------------- */
table.modindextable td {
padding: 2px;
border-collapse: collapse;
}
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 450px;
max-width: 800px;
}
div.body p, div.body dd, div.body li, div.body blockquote {
-moz-hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink,
caption:hover > a.headerlink,
p.caption:hover > a.headerlink,
div.code-block-caption:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px 7px 0 7px;
background-color: #ffe;
width: 40%;
float: right;
}
p.sidebar-title {
font-weight: bold;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px 7px 0 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
div.admonition dl {
margin-bottom: 0;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
border: 0;
border-collapse: collapse;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
table caption span.caption-text {
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
th > p:first-child,
td > p:first-child {
margin-top: 0px;
}
th > p:last-child,
td > p:last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption {
padding: 0.3em;
}
div.figure p.caption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
table.field-list td, table.field-list th {
border: 0 !important;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist td {
vertical-align: top;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
li > p:first-child {
margin-top: 0px;
}
li > p:last-child {
margin-bottom: 0px;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
dl.field-list {
display: flex;
flex-wrap: wrap;
}
dl.field-list > dt {
flex-basis: 20%;
font-weight: bold;
word-break: break-word;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
flex-basis: 70%;
padding-left: 1em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd > p:first-child {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dt:target, span.highlighted {
background-color: #fbe54e;
}
rect.highlighted {
fill: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0.5em;
content: ":";
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
}
td.linenos pre {
padding: 5px 0px;
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
margin-left: 0.5em;
}
table.highlighttable td {
padding: 0 0.5em 0 0.5em;
}
div.code-block-caption {
padding: 2px 5px;
font-size: small;
}
div.code-block-caption code {
background-color: transparent;
}
div.code-block-caption + div > div.highlight > pre {
margin-top: 0;
}
div.code-block-caption span.caption-number {
padding: 0.1em 0.3em;
font-style: italic;
}
div.code-block-caption span.caption-text {
}
div.literal-block-wrapper {
padding: 1em 1em 0;
}
div.literal-block-wrapper div.highlight {
margin: 0;
}
code.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
code.descclassname {
background-color: transparent;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
span.eqno a.headerlink {
position: relative;
left: 0px;
z-index: 1;
}
div.math:hover a.headerlink {
visibility: visible;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}

1
_static/custom.css Normal file
View file

@ -0,0 +1 @@
/* This file intentionally left blank. */

314
_static/doctools.js Normal file
View file

@ -0,0 +1,314 @@
/*
* doctools.js
* ~~~~~~~~~~~
*
* Sphinx JavaScript utilities for all documentation.
*
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* make the code below compatible with browsers without
* an installed firebug like debugger
if (!window.console || !console.firebug) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
"profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {};
}
*/
/**
* small helper function to urldecode strings
*/
jQuery.urldecode = function(x) {
return decodeURIComponent(x).replace(/\+/g, ' ');
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
/**
* Small JavaScript module for the documentation.
*/
var Documentation = {
init : function() {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
this.initOnKeyListeners();
}
},
/**
* i18n support
*/
TRANSLATIONS : {},
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
LOCALE : 'unknown',
// gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext)
gettext : function(string) {
var translated = Documentation.TRANSLATIONS[string];
if (typeof translated === 'undefined')
return string;
return (typeof translated === 'string') ? translated : translated[0];
},
ngettext : function(singular, plural, n) {
var translated = Documentation.TRANSLATIONS[singular];
if (typeof translated === 'undefined')
return (n == 1) ? singular : plural;
return translated[Documentation.PLURALEXPR(n)];
},
addTranslations : function(catalog) {
for (var key in catalog.messages)
this.TRANSLATIONS[key] = catalog.messages[key];
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
this.LOCALE = catalog.locale;
},
/**
* add context elements like header anchor links
*/
addContextElements : function() {
$('div[id] > :header:first').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this headline')).
appendTo(this);
});
$('dt[id]').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this definition')).
appendTo(this);
});
},
/**
* workaround a firefox stupidity
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash && $.browser.mozilla)
window.setTimeout(function() {
document.location.href += '';
}, 10);
},
/**
* highlight the search words provided in the url in the text
*/
highlightSearchWords : function() {
var params = $.getQueryParameters();
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
if (terms.length) {
var body = $('div.body');
if (!body.length) {
body = $('body');
}
window.setTimeout(function() {
$.each(terms, function() {
body.highlightText(this.toLowerCase(), 'highlighted');
});
}, 10);
$('<p class="highlight-link"><a href="javascript:Documentation.' +
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
.appendTo($('#searchbox'));
}
},
/**
* init the domain index toggle buttons
*/
initIndexTable : function() {
var togglers = $('img.toggler').click(function() {
var src = $(this).attr('src');
var idnum = $(this).attr('id').substr(7);
$('tr.cg-' + idnum).toggle();
if (src.substr(-9) === 'minus.png')
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
else
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
}).css('display', '');
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
togglers.click();
}
},
/**
* helper function to hide the search marks again
*/
hideSearchWords : function() {
$('#searchbox .highlight-link').fadeOut(300);
$('span.highlighted').removeClass('highlighted');
},
/**
* make the url absolute
*/
makeURL : function(relativeURL) {
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
},
/**
* get the current relative url
*/
getCurrentURL : function() {
var path = document.location.pathname;
var parts = path.split(/\//);
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
if (this === '..')
parts.pop();
});
var url = parts.join('/');
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
},
initOnKeyListeners: function() {
$(document).keyup(function(event) {
var activeElementType = document.activeElement.tagName;
// don't navigate when in search box or textarea
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
switch (event.keyCode) {
case 37: // left
var prevHref = $('link[rel="prev"]').prop('href');
if (prevHref) {
window.location.href = prevHref;
return false;
}
case 39: // right
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
}
}
});
}
};
// quick alias for translations
_ = Documentation.gettext;
$(document).ready(function() {
Documentation.init();
});

View file

@ -0,0 +1,10 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '0.6.7',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false
};

BIN
_static/file.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

10253
_static/jquery-3.2.1.js vendored Normal file

File diff suppressed because it is too large Load diff

4
_static/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

297
_static/language_data.js Normal file
View file

@ -0,0 +1,297 @@
/*
* language_data.js
* ~~~~~~~~~~~~~~~~
*
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
/* Non-minified version JS is _stemmer.js if file is provided */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
}

BIN
_static/minus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

BIN
_static/plus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

69
_static/pygments.css Normal file
View file

@ -0,0 +1,69 @@
.highlight .hll { background-color: #ffffcc }
.highlight { background: #eeffcc; }
.highlight .c { color: #408090; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #007020 } /* Comment.Preproc */
.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #333333 } /* Generic.Output */
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #902000 } /* Keyword.Type */
.highlight .m { color: #208050 } /* Literal.Number */
.highlight .s { color: #4070a0 } /* Literal.String */
.highlight .na { color: #4070a0 } /* Name.Attribute */
.highlight .nb { color: #007020 } /* Name.Builtin */
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
.highlight .no { color: #60add5 } /* Name.Constant */
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #007020 } /* Name.Exception */
.highlight .nf { color: #06287e } /* Name.Function */
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #bb60d5 } /* Name.Variable */
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #208050 } /* Literal.Number.Bin */
.highlight .mf { color: #208050 } /* Literal.Number.Float */
.highlight .mh { color: #208050 } /* Literal.Number.Hex */
.highlight .mi { color: #208050 } /* Literal.Number.Integer */
.highlight .mo { color: #208050 } /* Literal.Number.Oct */
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
.highlight .sr { color: #235388 } /* Literal.String.Regex */
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #06287e } /* Name.Function.Magic */
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */

505
_static/searchtools.js Normal file
View file

@ -0,0 +1,505 @@
/*
* searchtools.js
* ~~~~~~~~~~~~~~~~
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
if (!Scorer) {
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: function(result) {
return result[4];
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2
};
}
if (!splitQuery) {
function splitQuery(query) {
return query.split(/\s+/);
}
}
/**
* Search Module
*/
var Search = {
_index : null,
_queued_query : null,
_pulse_status : -1,
htmlToText : function(htmlString) {
var htmlElement = document.createElement('span');
htmlElement.innerHTML = htmlString;
$(htmlElement).find('.headerlink').remove();
docContent = $(htmlElement).find('[role=main]')[0];
return docContent.textContent || docContent.innerText;
},
init : function() {
var params = $.getQueryParameters();
if (params.q) {
var query = params.q[0];
$('input[name="q"]')[0].value = query;
this.performSearch(query);
}
},
loadIndex : function(url) {
$.ajax({type: "GET", url: url, data: null,
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex : function(index) {
var q;
this._index = index;
if ((q = this._queued_query) !== null) {
this._queued_query = null;
Search.query(q);
}
},
hasIndex : function() {
return this._index !== null;
},
deferQuery : function(query) {
this._queued_query = query;
},
stopPulse : function() {
this._pulse_status = 0;
},
startPulse : function() {
if (this._pulse_status >= 0)
return;
function pulse() {
var i;
Search._pulse_status = (Search._pulse_status + 1) % 4;
var dotString = '';
for (i = 0; i < Search._pulse_status; i++)
dotString += '.';
Search.dots.text(dotString);
if (Search._pulse_status > -1)
window.setTimeout(pulse, 500);
}
pulse();
},
/**
* perform a search for something (or wait until index is loaded)
*/
performSearch : function(query) {
// create the required interface elements
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out);
$('#search-progress').text(_('Preparing search...'));
this.startPulse();
// index already loaded, the browser was quick!
if (this.hasIndex())
this.query(query);
else
this.deferQuery(query);
},
/**
* execute search (requires search index to be loaded)
*/
query : function(query) {
var i;
// stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
var searchterms = [];
var excluded = [];
var hlterms = [];
var tmp = splitQuery(query);
var objectterms = [];
for (i = 0; i < tmp.length; i++) {
if (tmp[i] !== "") {
objectterms.push(tmp[i].toLowerCase());
}
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word
var word = stemmer.stemWord(tmp[i].toLowerCase());
// prevent stemmer from cutting word smaller than two chars
if(word.length < 3 && tmp[i].length >= 3) {
word = tmp[i];
}
var toAppend;
// select the correct list
if (word[0] == '-') {
toAppend = excluded;
word = word.substr(1);
}
else {
toAppend = searchterms;
hlterms.push(tmp[i].toLowerCase());
}
// only add if not already in the list
if (!$u.contains(toAppend, word))
toAppend.push(word);
}
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
// console.debug('SEARCH: searching for:');
// console.info('required: ', searchterms);
// console.info('excluded: ', excluded);
// prepare search
var terms = this._index.terms;
var titleterms = this._index.titleterms;
// array of [filename, title, anchor, descr, score]
var results = [];
$('#search-progress').empty();
// lookup as object
for (i = 0; i < objectterms.length; i++) {
var others = [].concat(objectterms.slice(0, i),
objectterms.slice(i+1, objectterms.length));
results = results.concat(this.performObjectSearch(objectterms[i], others));
}
// lookup as search terms in fulltext
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
for (i = 0; i < results.length; i++)
results[i][4] = Scorer.score(results[i]);
}
// now sort the results by score (in opposite order of appearance, since the
// display function below uses pop() to retrieve items) and then
// alphabetically
results.sort(function(a, b) {
var left = a[4];
var right = b[4];
if (left > right) {
return 1;
} else if (left < right) {
return -1;
} else {
// same score: sort alphabetically
left = a[1].toLowerCase();
right = b[1].toLowerCase();
return (left > right) ? -1 : ((left < right) ? 1 : 0);
}
});
// for debugging
//Search.lastresults = results.slice(); // a copy
//console.info('search results:', Search.lastresults);
// print the results
var resultCount = results.length;
function displayNextItem() {
// results left, load the summary and display it
if (results.length) {
var item = results.pop();
var listItem = $('<li style="display:none"></li>');
if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
// dirhtml builder
var dirname = item[0] + '/';
if (dirname.match(/\/index\/$/)) {
dirname = dirname.substring(0, dirname.length-6);
} else if (dirname == 'index/') {
dirname = '';
}
listItem.append($('<a/>').attr('href',
DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
highlightstring + item[2]).html(item[1]));
} else {
// normal html builders
listItem.append($('<a/>').attr('href',
item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
highlightstring + item[2]).html(item[1]));
}
if (item[3]) {
listItem.append($('<span> (' + item[3] + ')</span>'));
Search.output.append(listItem);
listItem.slideDown(5, function() {
displayNextItem();
});
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
if (data !== '' && data !== undefined) {
listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
}
Search.output.append(listItem);
listItem.slideDown(5, function() {
displayNextItem();
});
}});
} else {
// no source available, just display title
Search.output.append(listItem);
listItem.slideDown(5, function() {
displayNextItem();
});
}
}
// search finished, update title and status message
else {
Search.stopPulse();
Search.title.text(_('Search Results'));
if (!resultCount)
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
else
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
Search.status.fadeIn(500);
}
}
displayNextItem();
},
/**
* search for object names
*/
performObjectSearch : function(object, otherterms) {
var filenames = this._index.filenames;
var docnames = this._index.docnames;
var objects = this._index.objects;
var objnames = this._index.objnames;
var titles = this._index.titles;
var i;
var results = [];
for (var prefix in objects) {
for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) {
var score = 0;
var parts = fullname.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullname == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
score += Scorer.objPartialMatch;
}
var match = objects[prefix][name];
var objname = objnames[match[1]][2];
var title = titles[match[0]];
// If more than one term searched for, we require other words to be
// found in the name/title/description
if (otherterms.length > 0) {
var haystack = (prefix + ' ' + name + ' ' +
objname + ' ' + title).toLowerCase();
var allfound = true;
for (i = 0; i < otherterms.length; i++) {
if (haystack.indexOf(otherterms[i]) == -1) {
allfound = false;
break;
}
}
if (!allfound) {
continue;
}
}
var descr = objname + _(', in ') + title;
var anchor = match[3];
if (anchor === '')
anchor = fullname;
else if (anchor == '-')
anchor = objnames[match[1]][1] + '-' + fullname;
// add custom score for some objects according to scorer
if (Scorer.objPrio.hasOwnProperty(match[2])) {
score += Scorer.objPrio[match[2]];
} else {
score += Scorer.objPrioDefault;
}
results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
}
}
}
return results;
},
/**
* search for full-text terms in the index
*/
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
var docnames = this._index.docnames;
var filenames = this._index.filenames;
var titles = this._index.titles;
var i, j, file;
var fileMap = {};
var scoreMap = {};
var results = [];
// perform the search on the required terms
for (i = 0; i < searchterms.length; i++) {
var word = searchterms[i];
var files = [];
var _o = [
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
// add support for partial matches
if (word.length > 2) {
for (var w in terms) {
if (w.match(word) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) {
break;
}
// found search word in contents
$u.each(_o, function(o) {
var _files = o.files;
if (_files === undefined)
return
if (_files.length === undefined)
_files = [_files];
files = files.concat(_files);
// set score for the word in each file to Scorer.term
for (j = 0; j < _files.length; j++) {
file = _files[j];
if (!(file in scoreMap))
scoreMap[file] = {}
scoreMap[file][word] = o.score;
}
});
// create the mapping
for (j = 0; j < files.length; j++) {
file = files[j];
if (file in fileMap)
fileMap[file].push(word);
else
fileMap[file] = [word];
}
}
// now check if the files don't contain excluded terms
for (file in fileMap) {
var valid = true;
// check if all requirements are matched
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
searchterms.filter(function(term){return term.length > 2}).length
if (
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) {
if (terms[excluded[i]] == file ||
titleterms[excluded[i]] == file ||
$u.contains(terms[excluded[i]] || [], file) ||
$u.contains(titleterms[excluded[i]] || [], file)) {
valid = false;
break;
}
}
// if we have still a valid result we can add it to the result list
if (valid) {
// select one (max) score for the file.
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
}
}
return results;
},
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
* of stemmed words, hlwords is the list of normal, unstemmed
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
var i = textLower.indexOf(this.toLowerCase());
if (i > -1)
start = i;
});
start = Math.max(start - 120, 0);
var excerpt = ((start > 0) ? '...' : '') +
$.trim(text.substr(start, 240)) +
((start + 240 - text.length) ? '...' : '');
var rv = $('<div class="context"></div>').text(excerpt);
$.each(hlwords, function() {
rv = rv.highlightText(this, 'highlighted');
});
return rv;
}
};
$(document).ready(function() {
Search.init();
});

999
_static/underscore-1.3.1.js Normal file
View file

@ -0,0 +1,999 @@
// Underscore.js 1.3.1
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore is freely distributable under the MIT license.
// Portions of Underscore are inspired or borrowed from Prototype,
// Oliver Steele's Functional, and John Resig's Micro-Templating.
// For all details and documentation:
// http://documentcloud.github.com/underscore
(function() {
// Baseline setup
// --------------
// Establish the root object, `window` in the browser, or `global` on the server.
var root = this;
// Save the previous value of the `_` variable.
var previousUnderscore = root._;
// Establish the object that gets returned to break out of a loop iteration.
var breaker = {};
// Save bytes in the minified (but not gzipped) version:
var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
// Create quick reference variables for speed access to core prototypes.
var slice = ArrayProto.slice,
unshift = ArrayProto.unshift,
toString = ObjProto.toString,
hasOwnProperty = ObjProto.hasOwnProperty;
// All **ECMAScript 5** native function implementations that we hope to use
// are declared here.
var
nativeForEach = ArrayProto.forEach,
nativeMap = ArrayProto.map,
nativeReduce = ArrayProto.reduce,
nativeReduceRight = ArrayProto.reduceRight,
nativeFilter = ArrayProto.filter,
nativeEvery = ArrayProto.every,
nativeSome = ArrayProto.some,
nativeIndexOf = ArrayProto.indexOf,
nativeLastIndexOf = ArrayProto.lastIndexOf,
nativeIsArray = Array.isArray,
nativeKeys = Object.keys,
nativeBind = FuncProto.bind;
// Create a safe reference to the Underscore object for use below.
var _ = function(obj) { return new wrapper(obj); };
// Export the Underscore object for **Node.js**, with
// backwards-compatibility for the old `require()` API. If we're in
// the browser, add `_` as a global object via a string identifier,
// for Closure Compiler "advanced" mode.
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root['_'] = _;
}
// Current version.
_.VERSION = '1.3.1';
// Collection Functions
// --------------------
// The cornerstone, an `each` implementation, aka `forEach`.
// Handles objects with the built-in `forEach`, arrays, and raw objects.
// Delegates to **ECMAScript 5**'s native `forEach` if available.
var each = _.each = _.forEach = function(obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
}
} else {
for (var key in obj) {
if (_.has(obj, key)) {
if (iterator.call(context, obj[key], key, obj) === breaker) return;
}
}
}
};
// Return the results of applying the iterator to each element.
// Delegates to **ECMAScript 5**'s native `map` if available.
_.map = _.collect = function(obj, iterator, context) {
var results = [];
if (obj == null) return results;
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
each(obj, function(value, index, list) {
results[results.length] = iterator.call(context, value, index, list);
});
if (obj.length === +obj.length) results.length = obj.length;
return results;
};
// **Reduce** builds up a single result from a list of values, aka `inject`,
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
var initial = arguments.length > 2;
if (obj == null) obj = [];
if (nativeReduce && obj.reduce === nativeReduce) {
if (context) iterator = _.bind(iterator, context);
return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
}
each(obj, function(value, index, list) {
if (!initial) {
memo = value;
initial = true;
} else {
memo = iterator.call(context, memo, value, index, list);
}
});
if (!initial) throw new TypeError('Reduce of empty array with no initial value');
return memo;
};
// The right-associative version of reduce, also known as `foldr`.
// Delegates to **ECMAScript 5**'s native `reduceRight` if available.
_.reduceRight = _.foldr = function(obj, iterator, memo, context) {
var initial = arguments.length > 2;
if (obj == null) obj = [];
if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
if (context) iterator = _.bind(iterator, context);
return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
}
var reversed = _.toArray(obj).reverse();
if (context && !initial) iterator = _.bind(iterator, context);
return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
};
// Return the first value which passes a truth test. Aliased as `detect`.
_.find = _.detect = function(obj, iterator, context) {
var result;
any(obj, function(value, index, list) {
if (iterator.call(context, value, index, list)) {
result = value;
return true;
}
});
return result;
};
// Return all the elements that pass a truth test.
// Delegates to **ECMAScript 5**'s native `filter` if available.
// Aliased as `select`.
_.filter = _.select = function(obj, iterator, context) {
var results = [];
if (obj == null) return results;
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
each(obj, function(value, index, list) {
if (iterator.call(context, value, index, list)) results[results.length] = value;
});
return results;
};
// Return all the elements for which a truth test fails.
_.reject = function(obj, iterator, context) {
var results = [];
if (obj == null) return results;
each(obj, function(value, index, list) {
if (!iterator.call(context, value, index, list)) results[results.length] = value;
});
return results;
};
// Determine whether all of the elements match a truth test.
// Delegates to **ECMAScript 5**'s native `every` if available.
// Aliased as `all`.
_.every = _.all = function(obj, iterator, context) {
var result = true;
if (obj == null) return result;
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
each(obj, function(value, index, list) {
if (!(result = result && iterator.call(context, value, index, list))) return breaker;
});
return result;
};
// Determine if at least one element in the object matches a truth test.
// Delegates to **ECMAScript 5**'s native `some` if available.
// Aliased as `any`.
var any = _.some = _.any = function(obj, iterator, context) {
iterator || (iterator = _.identity);
var result = false;
if (obj == null) return result;
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
each(obj, function(value, index, list) {
if (result || (result = iterator.call(context, value, index, list))) return breaker;
});
return !!result;
};
// Determine if a given value is included in the array or object using `===`.
// Aliased as `contains`.
_.include = _.contains = function(obj, target) {
var found = false;
if (obj == null) return found;
if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
found = any(obj, function(value) {
return value === target;
});
return found;
};
// Invoke a method (with arguments) on every item in a collection.
_.invoke = function(obj, method) {
var args = slice.call(arguments, 2);
return _.map(obj, function(value) {
return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
});
};
// Convenience version of a common use case of `map`: fetching a property.
_.pluck = function(obj, key) {
return _.map(obj, function(value){ return value[key]; });
};
// Return the maximum element or (element-based computation).
_.max = function(obj, iterator, context) {
if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
if (!iterator && _.isEmpty(obj)) return -Infinity;
var result = {computed : -Infinity};
each(obj, function(value, index, list) {
var computed = iterator ? iterator.call(context, value, index, list) : value;
computed >= result.computed && (result = {value : value, computed : computed});
});
return result.value;
};
// Return the minimum element (or element-based computation).
_.min = function(obj, iterator, context) {
if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
if (!iterator && _.isEmpty(obj)) return Infinity;
var result = {computed : Infinity};
each(obj, function(value, index, list) {
var computed = iterator ? iterator.call(context, value, index, list) : value;
computed < result.computed && (result = {value : value, computed : computed});
});
return result.value;
};
// Shuffle an array.
_.shuffle = function(obj) {
var shuffled = [], rand;
each(obj, function(value, index, list) {
if (index == 0) {
shuffled[0] = value;
} else {
rand = Math.floor(Math.random() * (index + 1));
shuffled[index] = shuffled[rand];
shuffled[rand] = value;
}
});
return shuffled;
};
// Sort the object's values by a criterion produced by an iterator.
_.sortBy = function(obj, iterator, context) {
return _.pluck(_.map(obj, function(value, index, list) {
return {
value : value,
criteria : iterator.call(context, value, index, list)
};
}).sort(function(left, right) {
var a = left.criteria, b = right.criteria;
return a < b ? -1 : a > b ? 1 : 0;
}), 'value');
};
// Groups the object's values by a criterion. Pass either a string attribute
// to group by, or a function that returns the criterion.
_.groupBy = function(obj, val) {
var result = {};
var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
each(obj, function(value, index) {
var key = iterator(value, index);
(result[key] || (result[key] = [])).push(value);
});
return result;
};
// Use a comparator function to figure out at what index an object should
// be inserted so as to maintain order. Uses binary search.
_.sortedIndex = function(array, obj, iterator) {
iterator || (iterator = _.identity);
var low = 0, high = array.length;
while (low < high) {
var mid = (low + high) >> 1;
iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
}
return low;
};
// Safely convert anything iterable into a real, live array.
_.toArray = function(iterable) {
if (!iterable) return [];
if (iterable.toArray) return iterable.toArray();
if (_.isArray(iterable)) return slice.call(iterable);
if (_.isArguments(iterable)) return slice.call(iterable);
return _.values(iterable);
};
// Return the number of elements in an object.
_.size = function(obj) {
return _.toArray(obj).length;
};
// Array Functions
// ---------------
// Get the first element of an array. Passing **n** will return the first N
// values in the array. Aliased as `head`. The **guard** check allows it to work
// with `_.map`.
_.first = _.head = function(array, n, guard) {
return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
};
// Returns everything but the last entry of the array. Especcialy useful on
// the arguments object. Passing **n** will return all the values in
// the array, excluding the last N. The **guard** check allows it to work with
// `_.map`.
_.initial = function(array, n, guard) {
return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
};
// Get the last element of an array. Passing **n** will return the last N
// values in the array. The **guard** check allows it to work with `_.map`.
_.last = function(array, n, guard) {
if ((n != null) && !guard) {
return slice.call(array, Math.max(array.length - n, 0));
} else {
return array[array.length - 1];
}
};
// Returns everything but the first entry of the array. Aliased as `tail`.
// Especially useful on the arguments object. Passing an **index** will return
// the rest of the values in the array from that index onward. The **guard**
// check allows it to work with `_.map`.
_.rest = _.tail = function(array, index, guard) {
return slice.call(array, (index == null) || guard ? 1 : index);
};
// Trim out all falsy values from an array.
_.compact = function(array) {
return _.filter(array, function(value){ return !!value; });
};
// Return a completely flattened version of an array.
_.flatten = function(array, shallow) {
return _.reduce(array, function(memo, value) {
if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
memo[memo.length] = value;
return memo;
}, []);
};
// Return a version of the array that does not contain the specified value(s).
_.without = function(array) {
return _.difference(array, slice.call(arguments, 1));
};
// Produce a duplicate-free version of the array. If the array has already
// been sorted, you have the option of using a faster algorithm.
// Aliased as `unique`.
_.uniq = _.unique = function(array, isSorted, iterator) {
var initial = iterator ? _.map(array, iterator) : array;
var result = [];
_.reduce(initial, function(memo, el, i) {
if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
memo[memo.length] = el;
result[result.length] = array[i];
}
return memo;
}, []);
return result;
};
// Produce an array that contains the union: each distinct element from all of
// the passed-in arrays.
_.union = function() {
return _.uniq(_.flatten(arguments, true));
};
// Produce an array that contains every item shared between all the
// passed-in arrays. (Aliased as "intersect" for back-compat.)
_.intersection = _.intersect = function(array) {
var rest = slice.call(arguments, 1);
return _.filter(_.uniq(array), function(item) {
return _.every(rest, function(other) {
return _.indexOf(other, item) >= 0;
});
});
};
// Take the difference between one array and a number of other arrays.
// Only the elements present in just the first array will remain.
_.difference = function(array) {
var rest = _.flatten(slice.call(arguments, 1));
return _.filter(array, function(value){ return !_.include(rest, value); });
};
// Zip together multiple lists into a single array -- elements that share
// an index go together.
_.zip = function() {
var args = slice.call(arguments);
var length = _.max(_.pluck(args, 'length'));
var results = new Array(length);
for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
return results;
};
// If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
// we need this function. Return the position of the first occurrence of an
// item in an array, or -1 if the item is not included in the array.
// Delegates to **ECMAScript 5**'s native `indexOf` if available.
// If the array is large and already in sort order, pass `true`
// for **isSorted** to use binary search.
_.indexOf = function(array, item, isSorted) {
if (array == null) return -1;
var i, l;
if (isSorted) {
i = _.sortedIndex(array, item);
return array[i] === item ? i : -1;
}
if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
return -1;
};
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
_.lastIndexOf = function(array, item) {
if (array == null) return -1;
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
var i = array.length;
while (i--) if (i in array && array[i] === item) return i;
return -1;
};
// Generate an integer Array containing an arithmetic progression. A port of
// the native Python `range()` function. See
// [the Python documentation](http://docs.python.org/library/functions.html#range).
_.range = function(start, stop, step) {
if (arguments.length <= 1) {
stop = start || 0;
start = 0;
}
step = arguments[2] || 1;
var len = Math.max(Math.ceil((stop - start) / step), 0);
var idx = 0;
var range = new Array(len);
while(idx < len) {
range[idx++] = start;
start += step;
}
return range;
};
// Function (ahem) Functions
// ------------------
// Reusable constructor function for prototype setting.
var ctor = function(){};
// Create a function bound to a given object (assigning `this`, and arguments,
// optionally). Binding with arguments is also known as `curry`.
// Delegates to **ECMAScript 5**'s native `Function.bind` if available.
// We check for `func.bind` first, to fail fast when `func` is undefined.
_.bind = function bind(func, context) {
var bound, args;
if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
if (!_.isFunction(func)) throw new TypeError;
args = slice.call(arguments, 2);
return bound = function() {
if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
ctor.prototype = func.prototype;
var self = new ctor;
var result = func.apply(self, args.concat(slice.call(arguments)));
if (Object(result) === result) return result;
return self;
};
};
// Bind all of an object's methods to that object. Useful for ensuring that
// all callbacks defined on an object belong to it.
_.bindAll = function(obj) {
var funcs = slice.call(arguments, 1);
if (funcs.length == 0) funcs = _.functions(obj);
each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
return obj;
};
// Memoize an expensive function by storing its results.
_.memoize = function(func, hasher) {
var memo = {};
hasher || (hasher = _.identity);
return function() {
var key = hasher.apply(this, arguments);
return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
};
};
// Delays a function for the given number of milliseconds, and then calls
// it with the arguments supplied.
_.delay = function(func, wait) {
var args = slice.call(arguments, 2);
return setTimeout(function(){ return func.apply(func, args); }, wait);
};
// Defers a function, scheduling it to run after the current call stack has
// cleared.
_.defer = function(func) {
return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
};
// Returns a function, that, when invoked, will only be triggered at most once
// during a given window of time.
_.throttle = function(func, wait) {
var context, args, timeout, throttling, more;
var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
return function() {
context = this; args = arguments;
var later = function() {
timeout = null;
if (more) func.apply(context, args);
whenDone();
};
if (!timeout) timeout = setTimeout(later, wait);
if (throttling) {
more = true;
} else {
func.apply(context, args);
}
whenDone();
throttling = true;
};
};
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds.
_.debounce = function(func, wait) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
func.apply(context, args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
};
// Returns a function that will be executed at most one time, no matter how
// often you call it. Useful for lazy initialization.
_.once = function(func) {
var ran = false, memo;
return function() {
if (ran) return memo;
ran = true;
return memo = func.apply(this, arguments);
};
};
// Returns the first function passed as an argument to the second,
// allowing you to adjust arguments, run code before and after, and
// conditionally execute the original function.
_.wrap = function(func, wrapper) {
return function() {
var args = [func].concat(slice.call(arguments, 0));
return wrapper.apply(this, args);
};
};
// Returns a function that is the composition of a list of functions, each
// consuming the return value of the function that follows.
_.compose = function() {
var funcs = arguments;
return function() {
var args = arguments;
for (var i = funcs.length - 1; i >= 0; i--) {
args = [funcs[i].apply(this, args)];
}
return args[0];
};
};
// Returns a function that will only be executed after being called N times.
_.after = function(times, func) {
if (times <= 0) return func();
return function() {
if (--times < 1) { return func.apply(this, arguments); }
};
};
// Object Functions
// ----------------
// Retrieve the names of an object's properties.
// Delegates to **ECMAScript 5**'s native `Object.keys`
_.keys = nativeKeys || function(obj) {
if (obj !== Object(obj)) throw new TypeError('Invalid object');
var keys = [];
for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
return keys;
};
// Retrieve the values of an object's properties.
_.values = function(obj) {
return _.map(obj, _.identity);
};
// Return a sorted list of the function names available on the object.
// Aliased as `methods`
_.functions = _.methods = function(obj) {
var names = [];
for (var key in obj) {
if (_.isFunction(obj[key])) names.push(key);
}
return names.sort();
};
// Extend a given object with all the properties in passed-in object(s).
_.extend = function(obj) {
each(slice.call(arguments, 1), function(source) {
for (var prop in source) {
obj[prop] = source[prop];
}
});
return obj;
};
// Fill in a given object with default properties.
_.defaults = function(obj) {
each(slice.call(arguments, 1), function(source) {
for (var prop in source) {
if (obj[prop] == null) obj[prop] = source[prop];
}
});
return obj;
};
// Create a (shallow-cloned) duplicate of an object.
_.clone = function(obj) {
if (!_.isObject(obj)) return obj;
return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
};
// Invokes interceptor with the obj, and then returns obj.
// The primary purpose of this method is to "tap into" a method chain, in
// order to perform operations on intermediate results within the chain.
_.tap = function(obj, interceptor) {
interceptor(obj);
return obj;
};
// Internal recursive comparison function.
function eq(a, b, stack) {
// Identical objects are equal. `0 === -0`, but they aren't identical.
// See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
if (a === b) return a !== 0 || 1 / a == 1 / b;
// A strict comparison is necessary because `null == undefined`.
if (a == null || b == null) return a === b;
// Unwrap any wrapped objects.
if (a._chain) a = a._wrapped;
if (b._chain) b = b._wrapped;
// Invoke a custom `isEqual` method if one is provided.
if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
// Compare `[[Class]]` names.
var className = toString.call(a);
if (className != toString.call(b)) return false;
switch (className) {
// Strings, numbers, dates, and booleans are compared by value.
case '[object String]':
// Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
// equivalent to `new String("5")`.
return a == String(b);
case '[object Number]':
// `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
// other numeric values.
return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
case '[object Date]':
case '[object Boolean]':
// Coerce dates and booleans to numeric primitive values. Dates are compared by their
// millisecond representations. Note that invalid dates with millisecond representations
// of `NaN` are not equivalent.
return +a == +b;
// RegExps are compared by their source patterns and flags.
case '[object RegExp]':
return a.source == b.source &&
a.global == b.global &&
a.multiline == b.multiline &&
a.ignoreCase == b.ignoreCase;
}
if (typeof a != 'object' || typeof b != 'object') return false;
// Assume equality for cyclic structures. The algorithm for detecting cyclic
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
var length = stack.length;
while (length--) {
// Linear search. Performance is inversely proportional to the number of
// unique nested structures.
if (stack[length] == a) return true;
}
// Add the first object to the stack of traversed objects.
stack.push(a);
var size = 0, result = true;
// Recursively compare objects and arrays.
if (className == '[object Array]') {
// Compare array lengths to determine if a deep comparison is necessary.
size = a.length;
result = size == b.length;
if (result) {
// Deep compare the contents, ignoring non-numeric properties.
while (size--) {
// Ensure commutative equality for sparse arrays.
if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
}
}
} else {
// Objects with different constructors are not equivalent.
if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
// Deep compare objects.
for (var key in a) {
if (_.has(a, key)) {
// Count the expected number of properties.
size++;
// Deep compare each member.
if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
}
}
// Ensure that both objects contain the same number of properties.
if (result) {
for (key in b) {
if (_.has(b, key) && !(size--)) break;
}
result = !size;
}
}
// Remove the first object from the stack of traversed objects.
stack.pop();
return result;
}
// Perform a deep comparison to check if two objects are equal.
_.isEqual = function(a, b) {
return eq(a, b, []);
};
// Is a given array, string, or object empty?
// An "empty" object has no enumerable own-properties.
_.isEmpty = function(obj) {
if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
for (var key in obj) if (_.has(obj, key)) return false;
return true;
};
// Is a given value a DOM element?
_.isElement = function(obj) {
return !!(obj && obj.nodeType == 1);
};
// Is a given value an array?
// Delegates to ECMA5's native Array.isArray
_.isArray = nativeIsArray || function(obj) {
return toString.call(obj) == '[object Array]';
};
// Is a given variable an object?
_.isObject = function(obj) {
return obj === Object(obj);
};
// Is a given variable an arguments object?
_.isArguments = function(obj) {
return toString.call(obj) == '[object Arguments]';
};
if (!_.isArguments(arguments)) {
_.isArguments = function(obj) {
return !!(obj && _.has(obj, 'callee'));
};
}
// Is a given value a function?
_.isFunction = function(obj) {
return toString.call(obj) == '[object Function]';
};
// Is a given value a string?
_.isString = function(obj) {
return toString.call(obj) == '[object String]';
};
// Is a given value a number?
_.isNumber = function(obj) {
return toString.call(obj) == '[object Number]';
};
// Is the given value `NaN`?
_.isNaN = function(obj) {
// `NaN` is the only value for which `===` is not reflexive.
return obj !== obj;
};
// Is a given value a boolean?
_.isBoolean = function(obj) {
return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
};
// Is a given value a date?
_.isDate = function(obj) {
return toString.call(obj) == '[object Date]';
};
// Is the given value a regular expression?
_.isRegExp = function(obj) {
return toString.call(obj) == '[object RegExp]';
};
// Is a given value equal to null?
_.isNull = function(obj) {
return obj === null;
};
// Is a given variable undefined?
_.isUndefined = function(obj) {
return obj === void 0;
};
// Has own property?
_.has = function(obj, key) {
return hasOwnProperty.call(obj, key);
};
// Utility Functions
// -----------------
// Run Underscore.js in *noConflict* mode, returning the `_` variable to its
// previous owner. Returns a reference to the Underscore object.
_.noConflict = function() {
root._ = previousUnderscore;
return this;
};
// Keep the identity function around for default iterators.
_.identity = function(value) {
return value;
};
// Run a function **n** times.
_.times = function (n, iterator, context) {
for (var i = 0; i < n; i++) iterator.call(context, i);
};
// Escape a string for HTML interpolation.
_.escape = function(string) {
return (''+string).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
};
// Add your own custom functions to the Underscore object, ensuring that
// they're correctly added to the OOP wrapper as well.
_.mixin = function(obj) {
each(_.functions(obj), function(name){
addToWrapper(name, _[name] = obj[name]);
});
};
// Generate a unique integer id (unique within the entire client session).
// Useful for temporary DOM ids.
var idCounter = 0;
_.uniqueId = function(prefix) {
var id = idCounter++;
return prefix ? prefix + id : id;
};
// By default, Underscore uses ERB-style template delimiters, change the
// following template settings to use alternative delimiters.
_.templateSettings = {
evaluate : /<%([\s\S]+?)%>/g,
interpolate : /<%=([\s\S]+?)%>/g,
escape : /<%-([\s\S]+?)%>/g
};
// When customizing `templateSettings`, if you don't want to define an
// interpolation, evaluation or escaping regex, we need one that is
// guaranteed not to match.
var noMatch = /.^/;
// Within an interpolation, evaluation, or escaping, remove HTML escaping
// that had been previously added.
var unescape = function(code) {
return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
};
// JavaScript micro-templating, similar to John Resig's implementation.
// Underscore templating handles arbitrary delimiters, preserves whitespace,
// and correctly escapes quotes within interpolated code.
_.template = function(str, data) {
var c = _.templateSettings;
var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
'with(obj||{}){__p.push(\'' +
str.replace(/\\/g, '\\\\')
.replace(/'/g, "\\'")
.replace(c.escape || noMatch, function(match, code) {
return "',_.escape(" + unescape(code) + "),'";
})
.replace(c.interpolate || noMatch, function(match, code) {
return "'," + unescape(code) + ",'";
})
.replace(c.evaluate || noMatch, function(match, code) {
return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
})
.replace(/\r/g, '\\r')
.replace(/\n/g, '\\n')
.replace(/\t/g, '\\t')
+ "');}return __p.join('');";
var func = new Function('obj', '_', tmpl);
if (data) return func(data, _);
return function(data) {
return func.call(this, data, _);
};
};
// Add a "chain" function, which will delegate to the wrapper.
_.chain = function(obj) {
return _(obj).chain();
};
// The OOP Wrapper
// ---------------
// If Underscore is called as a function, it returns a wrapped object that
// can be used OO-style. This wrapper holds altered versions of all the
// underscore functions. Wrapped objects may be chained.
var wrapper = function(obj) { this._wrapped = obj; };
// Expose `wrapper.prototype` as `_.prototype`
_.prototype = wrapper.prototype;
// Helper function to continue chaining intermediate results.
var result = function(obj, chain) {
return chain ? _(obj).chain() : obj;
};
// A method to easily add functions to the OOP wrapper.
var addToWrapper = function(name, func) {
wrapper.prototype[name] = function() {
var args = slice.call(arguments);
unshift.call(args, this._wrapped);
return result(func.apply(_, args), this._chain);
};
};
// Add all of the Underscore functions to the wrapper object.
_.mixin(_);
// Add all mutator Array functions to the wrapper.
each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
var method = ArrayProto[name];
wrapper.prototype[name] = function() {
var wrapped = this._wrapped;
method.apply(wrapped, arguments);
var length = wrapped.length;
if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
return result(wrapped, this._chain);
};
});
// Add all accessor Array functions to the wrapper.
each(['concat', 'join', 'slice'], function(name) {
var method = ArrayProto[name];
wrapper.prototype[name] = function() {
return result(method.apply(this._wrapped, arguments), this._chain);
};
});
// Start chaining a wrapped Underscore object.
wrapper.prototype.chain = function() {
this._chain = true;
return this;
};
// Extracts the result from a wrapped and chained object.
wrapper.prototype.value = function() {
return this._wrapped;
};
}).call(this);

31
_static/underscore.js Normal file
View file

@ -0,0 +1,31 @@
// Underscore.js 1.3.1
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore is freely distributable under the MIT license.
// Portions of Underscore are inspired or borrowed from Prototype,
// Oliver Steele's Functional, and John Resig's Micro-Templating.
// For all details and documentation:
// http://documentcloud.github.com/underscore
(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==
null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});
return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=
b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]);
return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,
d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};
var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,
c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true:
a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};
b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),
function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);

240
changelog.html Normal file
View file

@ -0,0 +1,240 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Changelog &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Basic Usage of python-rocksdb" href="tutorial/index.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="changelog">
<h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline"></a></h1>
<div class="section" id="version-0-5">
<h2>Version 0.5<a class="headerlink" href="#version-0-5" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="version-0-4">
<h2>Version 0.4<a class="headerlink" href="#version-0-4" title="Permalink to this headline"></a></h2>
<p>This version works with RocksDB v3.12.</p>
<ul class="simple">
<li><p>Added <code class="xref py py-func docutils literal notranslate"><span class="pre">repair_db()</span></code>.</p></li>
<li><p>Added <code class="xref py py-meth docutils literal notranslate"><span class="pre">rocksdb.Options.row_cache()</span></code></p></li>
<li><p>Publish to pypi.</p></li>
</ul>
<div class="section" id="backward-incompatible-changes">
<h3>Backward Incompatible Changes:<a class="headerlink" href="#backward-incompatible-changes" title="Permalink to this headline"></a></h3>
<ul>
<li><p>Changed API of <code class="xref py py-meth docutils literal notranslate"><span class="pre">rocksdb.DB.compact_range()</span></code>.</p>
<blockquote>
<div><ul class="simple">
<li><p>Only allow keyword arguments.</p></li>
<li><p>Changed <code class="docutils literal notranslate"><span class="pre">reduce_level</span></code> to <code class="docutils literal notranslate"><span class="pre">change_level</span></code>.</p></li>
<li><p>Add new argument called <code class="docutils literal notranslate"><span class="pre">bottommost_level_compaction</span></code>.</p></li>
</ul>
</div></blockquote>
</li>
</ul>
</div>
</div>
<div class="section" id="version-0-3">
<h2>Version 0.3<a class="headerlink" href="#version-0-3" title="Permalink to this headline"></a></h2>
<p>This version works with RocksDB version v3.11.</p>
<div class="section" id="id1">
<h3>Backward Incompatible Changes:<a class="headerlink" href="#id1" title="Permalink to this headline"></a></h3>
<p><strong>Prefix Seeks:</strong></p>
<p>According to this page <a class="reference external" href="https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes">https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes</a>,
all the prefix related parameters on <code class="docutils literal notranslate"><span class="pre">ReadOptions</span></code> are removed.
Rocksdb realizes now if <code class="docutils literal notranslate"><span class="pre">Options.prefix_extractor</span></code> is set and uses then
prefix-seeks automatically. This means the following changes on pyrocksdb.</p>
<ul class="simple">
<li><p>DB.iterkeys, DB.itervalues, DB.iteritems have <em>no</em> <code class="docutils literal notranslate"><span class="pre">prefix</span></code> parameter anymore.</p></li>
<li><p>DB.get, DB.multi_get, DB.key_may_exist, DB.iterkeys, DB.itervalues, DB.iteritems
have <em>no</em> <code class="docutils literal notranslate"><span class="pre">prefix_seek</span></code> parameter anymore.</p></li>
</ul>
<p>Which means all the iterators walk now always to the <em>end</em> of the database.
So if you need to stay within a prefix, write your own code to ensure that.
For DB.iterkeys and DB.iteritems <code class="docutils literal notranslate"><span class="pre">itertools.takewhile</span></code> is a possible solution.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">itertools</span> <span class="k">import</span> <span class="n">takewhile</span>
<span class="n">it</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">iterkeys</span><span class="p">()</span>
<span class="n">it</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;00002&#39;</span><span class="p">)</span>
<span class="nb">print</span> <span class="nb">list</span><span class="p">(</span><span class="n">takewhile</span><span class="p">(</span><span class="k">lambda</span> <span class="n">key</span><span class="p">:</span> <span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;00002&#39;</span><span class="p">),</span> <span class="n">it</span><span class="p">))</span>
<span class="n">it</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">iteritems</span><span class="p">()</span>
<span class="n">it</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;00002&#39;</span><span class="p">)</span>
<span class="nb">print</span> <span class="nb">dict</span><span class="p">(</span><span class="n">takewhile</span><span class="p">(</span><span class="k">lambda</span> <span class="n">item</span><span class="p">:</span> <span class="n">item</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;00002&#39;</span><span class="p">),</span> <span class="n">it</span><span class="p">))</span>
</pre></div>
</div>
<p><strong>SST Table Builders:</strong></p>
<ul class="simple">
<li><p>Removed <code class="docutils literal notranslate"><span class="pre">NewTotalOrderPlainTableFactory</span></code>, because rocksdb drops it too.</p></li>
</ul>
<p><strong>Changed Options:</strong></p>
<p>In newer versions of rocksdb a bunch of options were moved or removed.</p>
<ul class="simple">
<li><p>Rename <code class="docutils literal notranslate"><span class="pre">bloom_bits_per_prefix</span></code> of <code class="xref py py-class docutils literal notranslate"><span class="pre">rocksdb.PlainTableFactory</span></code> to <code class="docutils literal notranslate"><span class="pre">bloom_bits_per_key</span></code></p></li>
<li><p>Removed <code class="docutils literal notranslate"><span class="pre">Options.db_stats_log_interval</span></code>.</p></li>
<li><p>Removed <code class="docutils literal notranslate"><span class="pre">Options.disable_seek_compaction</span></code></p></li>
<li><p>Moved <code class="docutils literal notranslate"><span class="pre">Options.no_block_cache</span></code> to <code class="docutils literal notranslate"><span class="pre">BlockBasedTableFactory</span></code></p></li>
<li><p>Moved <code class="docutils literal notranslate"><span class="pre">Options.block_size</span></code> to <code class="docutils literal notranslate"><span class="pre">BlockBasedTableFactory</span></code></p></li>
<li><p>Moved <code class="docutils literal notranslate"><span class="pre">Options.block_size_deviation</span></code> to <code class="docutils literal notranslate"><span class="pre">BlockBasedTableFactory</span></code></p></li>
<li><p>Moved <code class="docutils literal notranslate"><span class="pre">Options.block_restart_interval</span></code> to <code class="docutils literal notranslate"><span class="pre">BlockBasedTableFactory</span></code></p></li>
<li><p>Moved <code class="docutils literal notranslate"><span class="pre">Options.whole_key_filtering</span></code> to <code class="docutils literal notranslate"><span class="pre">BlockBasedTableFactory</span></code></p></li>
<li><p>Removed <code class="docutils literal notranslate"><span class="pre">Options.table_cache_remove_scan_count_limit</span></code></p></li>
<li><p>Removed rm_scan_count_limit from <code class="docutils literal notranslate"><span class="pre">LRUCache</span></code></p></li>
</ul>
</div>
<div class="section" id="new">
<h3>New:<a class="headerlink" href="#new" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Make CompactRange available: <code class="xref py py-meth docutils literal notranslate"><span class="pre">rocksdb.DB.compact_range()</span></code></p></li>
<li><p>Add init options to <code class="xref py py-class docutils literal notranslate"><span class="pre">rocksdb.BlockBasedTableFactory</span></code></p></li>
<li><p>Add more option to <code class="xref py py-class docutils literal notranslate"><span class="pre">rocksdb.PlainTableFactory</span></code></p></li>
<li><p>Add <code class="xref py py-class docutils literal notranslate"><span class="pre">rocksdb.WriteBatchIterator</span></code></p></li>
<li><p>add <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.CompressionType.lz4_compression</span></code></p></li>
<li><p>add <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.CompressionType.lz4hc_compression</span></code></p></li>
</ul>
</div>
</div>
<div class="section" id="version-0-2">
<h2>Version 0.2<a class="headerlink" href="#version-0-2" title="Permalink to this headline"></a></h2>
<p>This version works with RocksDB version 2.8.fb. Now you have access to the more
advanced options of rocksdb. Like changing the memtable or SST representation.
It is also possible now to enable <em>Universal Style Compaction</em>.</p>
<ul class="simple">
<li><p>Fixed <a class="reference external" href="https://github.com/stephan-hof/pyrocksdb/pull/3">issue 3</a>.
Which fixed the change of prefix_extractor from raw-pointer to smart-pointer.</p></li>
<li><p>Support the new <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.Options.verify_checksums_in_compaction</span></code> option.</p></li>
<li><p>Add <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.Options.table_factory</span></code> option. So you could use the new
PlainTableFactories which are optimized for in-memory-databases.</p>
<ul>
<li><p><a class="reference external" href="https://github.com/facebook/rocksdb/wiki/PlainTable-Format">https://github.com/facebook/rocksdb/wiki/PlainTable-Format</a></p></li>
<li><p><a class="reference external" href="https://github.com/facebook/rocksdb/wiki/How-to-persist-in-memory-RocksDB-database%3F">https://github.com/facebook/rocksdb/wiki/How-to-persist-in-memory-RocksDB-database%3F</a></p></li>
</ul>
</li>
<li><p>Add <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.Options.memtable_factory</span></code> option.</p></li>
<li><p>Add options <code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.Options.compaction_style</span></code> and
<code class="xref py py-attr docutils literal notranslate"><span class="pre">rocksdb.Options.compaction_options_universal</span></code> to change the
compaction style.</p></li>
<li><p>Update documentation to the new default values</p>
<ul>
<li><p>allow_mmap_reads=true</p></li>
<li><p>allow_mmap_writes=false</p></li>
<li><p>max_background_flushes=1</p></li>
<li><p>max_open_files=5000</p></li>
<li><p>paranoid_checks=true</p></li>
<li><p>disable_seek_compaction=true</p></li>
<li><p>level0_stop_writes_trigger=24</p></li>
<li><p>level0_slowdown_writes_trigger=20</p></li>
</ul>
</li>
<li><p>Document new property names for <code class="xref py py-meth docutils literal notranslate"><span class="pre">rocksdb.DB.get_property()</span></code>.</p></li>
</ul>
</div>
<div class="section" id="version-0-1">
<h2>Version 0.1<a class="headerlink" href="#version-0-1" title="Permalink to this headline"></a></h2>
<p>Initial version. Works with rocksdb version 2.7.fb.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Changelog</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#version-0-5">Version 0.5</a></li>
<li class="toctree-l2"><a class="reference internal" href="#version-0-4">Version 0.4</a></li>
<li class="toctree-l2"><a class="reference internal" href="#version-0-3">Version 0.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="#version-0-2">Version 0.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="#version-0-1">Version 0.1</a></li>
</ul>
</li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="tutorial/index.html" title="previous chapter">Basic Usage of python-rocksdb</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/changelog.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -1,177 +0,0 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/rocksdb.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/rocksdb.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/rocksdb"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/rocksdb"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

0
docs/_static/.empty vendored
View file

View file

@ -1,68 +0,0 @@
Backup and Restore
******************
BackupEngine
============
.. py:class:: rocksdb.BackupEngine
.. py:method:: __init__(backup_dir)
Creates a object to manage backup of a single database.
:param unicode backup_dir: Where to keep the backup files.
Has to be different than db.db_name.
For example db.db_name + '/backups'.
.. py:method:: create_backup(db, flush_before_backup=False)
Triggers the creation of a backup.
:param db: Database object to backup.
:type db: :py:class:`rocksdb.DB`
:param bool flush_before_backup: If ``True`` the current memtable is flushed.
.. py:method:: restore_backup(backup_id, db_dir, wal_dir)
Restores the backup from the given id.
:param int backup_id: id of the backup to restore.
:param unicode db_dir: Target directory to restore backup.
:param unicode wal_dir: Target directory to restore backuped WAL files.
.. py:method:: restore_latest_backup(db_dir, wal_dir)
Restores the latest backup.
:param unicode db_dir: see :py:meth:`restore_backup`
:param unicode wal_dir: see :py:meth:`restore_backup`
.. py:method:: stop_backup()
Can be called from another thread to stop the current backup process.
.. py:method:: purge_old_backups(num_backups_to_keep)
Deletes all backups (oldest first) until "num_backups_to_keep" are left.
:param int num_backups_to_keep: Number of backupfiles to keep.
.. py:method:: delete_backup(backup_id)
:param int backup_id: Delete the backup with the given id.
.. py:method:: get_backup_info()
Returns information about all backups.
It returns a list of dict's where each dict as the following keys.
``backup_id``
(int): id of this backup.
``timestamp``
(int): Seconds since epoch, when the backup was created.
``size``
(int): Size in bytes of the backup.

View file

@ -1,538 +0,0 @@
Database interactions
*********************
Database object
===============
.. py:class:: rocksdb.DB
.. py:method:: __init__(db_name, Options opts, read_only=False)
:param unicode db_name: Name of the database to open
:param opts: Options for this specific database
:type opts: :py:class:`rocksdb.Options`
:param bool read_only: If ``True`` the database is opened read-only.
All DB calls which modify data will raise an
Exception.
.. py:method:: put(key, value, sync=False, disable_wal=False)
Set the database entry for "key" to "value".
:param bytes key: Name for this entry
:param bytes value: Data for this entry
:param bool sync:
If ``True``, the write will be flushed from the operating system
buffer cache (by calling WritableFile::Sync()) before the write
is considered complete. If this flag is true, writes will be
slower.
If this flag is ``False``, and the machine crashes, some recent
writes may be lost. Note that if it is just the process that
crashes (i.e., the machine does not reboot), no writes will be
lost even if ``sync == False``.
In other words, a DB write with ``sync == False`` has similar
crash semantics as the "write()" system call. A DB write
with ``sync == True`` has similar crash semantics to a "write()"
system call followed by "fdatasync()".
:param bool disable_wal:
If ``True``, writes will not first go to the write ahead log,
and the write may got lost after a crash.
.. py:method:: delete(key, sync=False, disable_wal=False)
Remove the database entry for "key".
:param bytes key: Name to delete
:param sync: See :py:meth:`rocksdb.DB.put`
:param disable_wal: See :py:meth:`rocksdb.DB.put`
:raises rocksdb.errors.NotFound: If the key did not exists
.. py:method:: merge(key, value, sync=False, disable_wal=False)
Merge the database entry for "key" with "value".
The semantics of this operation is determined by the user provided
merge_operator when opening DB.
See :py:meth:`rocksdb.DB.put` for the parameters
:raises:
:py:exc:`rocksdb.errors.NotSupported` if this is called and
no :py:attr:`rocksdb.Options.merge_operator` was set at creation
.. py:method:: write(batch, sync=False, disable_wal=False)
Apply the specified updates to the database.
:param rocksdb.WriteBatch batch: Batch to apply
:param sync: See :py:meth:`rocksdb.DB.put`
:param disable_wal: See :py:meth:`rocksdb.DB.put`
.. py:method:: get(key, verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
:param bytes key: Name to get
:param bool verify_checksums:
If ``True``, all data read from underlying storage will be
verified against corresponding checksums.
:param bool fill_cache:
Should the "data block", "index block" or "filter block"
read for this iteration be cached in memory?
Callers may wish to set this field to ``False`` for bulk scans.
:param snapshot:
If not ``None``, read as of the supplied snapshot
(which must belong to the DB that is being read and which must
not have been released). Is it ``None`` a implicit snapshot of the
state at the beginning of this read operation is used
:type snapshot: :py:class:`rocksdb.Snapshot`
:param string read_tier:
Specify if this read request should process data that ALREADY
resides on a particular cache. If the required data is not
found at the specified cache,
then :py:exc:`rocksdb.errors.Incomplete` is raised.
| Use ``all`` if a fetch from disk is allowed.
| Use ``cache`` if only data from cache is allowed.
:returns: ``None`` if not found, else the value for this key
.. py:method:: multi_get(keys, verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
:param keys: Keys to fetch
:type keys: list of bytes
For the other params see :py:meth:`rocksdb.DB.get`
:returns:
A ``dict`` where the value is either ``bytes`` or ``None`` if not found
:raises: If the fetch for a single key fails
.. note::
keys will not be "de-duplicated".
Duplicate keys will return duplicate values in order.
.. py:method:: key_may_exist(key, fetch=False, verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
If the key definitely does not exist in the database, then this method
returns ``False``, else ``True``. If the caller wants to obtain value
when the key is found in memory, fetch should be set to ``True``.
This check is potentially lighter-weight than invoking DB::get().
One way to make this lighter weight is to avoid doing any IOs.
:param bytes key: Key to check
:param bool fetch: Obtain also the value if found
For the other params see :py:meth:`rocksdb.DB.get`
:returns:
* ``(True, None)`` if key is found but value not in memory
* ``(True, None)`` if key is found and ``fetch=False``
* ``(True, <data>)`` if key is found and value in memory and ``fetch=True``
* ``(False, None)`` if key is not found
.. py:method:: iterkeys(verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
Iterate over the keys
For other params see :py:meth:`rocksdb.DB.get`
:returns:
A iterator object which is not valid yet.
Call first one of the seek methods of the iterator to position it
:rtype: :py:class:`rocksdb.BaseIterator`
.. py:method:: itervalues(verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
Iterate over the values
For other params see :py:meth:`rocksdb.DB.get`
:returns:
A iterator object which is not valid yet.
Call first one of the seek methods of the iterator to position it
:rtype: :py:class:`rocksdb.BaseIterator`
.. py:method:: iteritems(verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
Iterate over the items
For other params see :py:meth:`rocksdb.DB.get`
:returns:
A iterator object which is not valid yet.
Call first one of the seek methods of the iterator to position it
:rtype: :py:class:`rocksdb.BaseIterator`
.. py:method:: iterator(start=None, column_family=None, iterate_lower_bound=None, iterate_upper_bound=None, reverse=False, include_key=True, include_value=True, fill_cache=True, prefix_same_as_start=False, auto_prefix_mode=False)
:param start: prefix to seek to
:type start: bytes
:param column_family: column family handle
:type column_family: :py:class:`rocksdb.ColumnFamilyHandle`
:param iterate_lower_bound:
defines the smallest key at which the backward iterator can return an entry.
Once the bound is passed, Valid() will be false. `iterate_lower_bound` is
inclusive ie the bound value is a valid entry.
If prefix_extractor is not null, the Seek target and `iterate_lower_bound`
need to have the same prefix. This is because ordering is not guaranteed
outside of prefix domain.
:type iterate_lower_bound: bytes
:param iterate_upper_bound:
defines the extent up to which the forward iterator
can returns entries. Once the bound is reached, Valid() will be false.
"iterate_upper_bound" is exclusive ie the bound value is
not a valid entry. If prefix_extractor is not null:
1. If auto_prefix_mode = true, iterate_upper_bound will be used
to infer whether prefix iterating (e.g. applying prefix bloom filter)
can be used within RocksDB. This is done by comparing
iterate_upper_bound with the seek key.
2. If auto_prefix_mode = false, iterate_upper_bound only takes
effect if it shares the same prefix as the seek key. If
iterate_upper_bound is outside the prefix of the seek key, then keys
returned outside the prefix range will be undefined, just as if
iterate_upper_bound = null.
If iterate_upper_bound is not null, SeekToLast() will position the iterator
at the first key smaller than iterate_upper_bound.
:type iterate_upper_bound: bytes
:param reverse: run the iteration in reverse - using `reversed` is also supported
:type reverse: bool
:param include_key: the iterator should include the key in each iteration
:type include_key: bool
:param include_value: the iterator should include the value in each iteration
:type include_value: bool
:param fill_cache: Should the "data block"/"index block" read for this iteration be placed in
block cache? Callers may wish to set this field to false for bulk scans.
This would help not to the change eviction order of existing items in the
block cache. Default: true
:type fill_cache: bool
:param bool prefix_same_as_start:
Enforce that the iterator only iterates over the same prefix as the seek.
This option is effective only for prefix seeks, i.e. prefix_extractor is
non-null for the column family and total_order_seek is false. Unlike
iterate_upper_bound, prefix_same_as_start only works within a prefix
but in both directions. Default: false
:type prefix_same_as_start: bool
:param bool auto_prefix_mode: When true, by default use total_order_seek = true, and RocksDB can
selectively enable prefix seek mode if won't generate a different result
from total_order_seek, based on seek key, and iterator upper bound.
Not supported in ROCKSDB_LITE mode, in the way that even with value true
prefix mode is not used. Default: false
:type auto_prefix_mode: bool
:returns:
A iterator object which is valid and ready to begin using. It will be either a key, item or value
iterator depending on the arguments provided.
:rtype: :py:class:`rocksdb.BaseIterator`
.. py:method:: snapshot()
Return a handle to the current DB state.
Iterators created with this handle will all observe a stable snapshot
of the current DB state.
:rtype: :py:class:`rocksdb.Snapshot`
.. py:method:: get_property(prop)
DB implementations can export properties about their state
via this method. If "property" is a valid property understood by this
DB implementation, a byte string with its value is returned.
Otherwise ``None``
Valid property names include:
* ``b"rocksdb.num-files-at-level<N>"``: return the number of files at level <N>,
where <N> is an ASCII representation of a level number (e.g. "0").
* ``b"rocksdb.stats"``: returns a multi-line byte string that describes statistics
about the internal operation of the DB.
* ``b"rocksdb.sstables"``: returns a multi-line byte string that describes all
of the sstables that make up the db contents.
* ``b"rocksdb.num-immutable-mem-table"``: Number of immutable mem tables.
* ``b"rocksdb.mem-table-flush-pending"``: Returns ``1`` if mem table flush is pending, otherwise ``0``.
* ``b"rocksdb.compaction-pending"``: Returns ``1`` if a compaction is pending, otherweise ``0``.
* ``b"rocksdb.background-errors"``: Returns accumulated background errors encountered.
* ``b"rocksdb.cur-size-active-mem-table"``: Returns current size of the active memtable.
.. py:method:: get_live_files_metadata()
Returns a list of all table files.
It returns a list of dict's were each dict has the following keys.
``name``
Name of the file
``level``
Level at which this file resides
``size``
File size in bytes
``smallestkey``
Smallest user defined key in the file
``largestkey``
Largest user defined key in the file
``smallest_seqno``
smallest seqno in file
``largest_seqno``
largest seqno in file
.. py:method:: compact_range(begin=None, end=None, ** options)
Compact the underlying storage for the key range [begin,end].
The actual compaction interval might be superset of [begin, end].
In particular, deleted and overwritten versions are discarded,
and the data is rearranged to reduce the cost of operations
needed to access the data.
This operation should typically only be invoked by users who understand
the underlying implementation.
``begin == None`` is treated as a key before all keys in the database.
``end == None`` is treated as a key after all keys in the database.
Therefore the following call will compact the entire database: ``db.compact_range()``.
Note that after the entire database is compacted, all data are pushed
down to the last level containing any data. If the total data size
after compaction is reduced, that level might not be appropriate for
hosting all the files. In this case, client could set change_level
to ``True``, to move the files back to the minimum level capable of holding
the data set or a given level (specified by non-negative target_level).
:param bytes begin: Key where to start compaction.
If ``None`` start at the beginning of the database.
:param bytes end: Key where to end compaction.
If ``None`` end at the last key of the database.
:param bool change_level: If ``True``, compacted files will be moved to
the minimum level capable of holding the data
or given level (specified by non-negative target_level).
If ``False`` you may end with a bigger level
than configured. Default is ``False``.
:param int target_level: If change_level is true and target_level have non-negative
value, compacted files will be moved to target_level.
Default is ``-1``.
:param string bottommost_level_compaction:
For level based compaction, we can configure if we want to
skip/force bottommost level compaction. By default level based
compaction will only compact the bottommost level if there is a
compaction filter. It can be set to the following values.
``skip``
Skip bottommost level compaction
``if_compaction_filter``
Only compact bottommost level if there is a compaction filter.
This is the default.
``force``
Always compact bottommost level
.. py:attribute:: options
Returns the associated :py:class:`rocksdb.Options` instance.
.. note::
Changes to this object have no effect anymore.
Consider this as read-only
Iterator
========
.. py:class:: rocksdb.BaseIterator
Base class for all iterators in this module. After creation a iterator is
invalid. Call one of the seek methods first before starting iteration
.. py:method:: seek_to_first()
Position at the first key in the source
.. py:method:: seek_to_last()
Position at the last key in the source
.. py:method:: seek(key)
:param bytes key: Position at the first key in the source that at or past
Methods to support the python iterator protocol
.. py:method:: __iter__()
.. py:method:: __next__()
.. py:method:: __reversed__()
Snapshot
========
.. py:class:: rocksdb.Snapshot
Opaque handler for a single Snapshot.
Snapshot is released if nobody holds a reference on it.
Retrieved via :py:meth:`rocksdb.DB.snapshot`
WriteBatch
==========
.. py:class:: rocksdb.WriteBatch
WriteBatch holds a collection of updates to apply atomically to a DB.
The updates are applied in the order in which they are added
to the WriteBatch. For example, the value of "key" will be "v3"
after the following batch is written::
batch = rocksdb.WriteBatch()
batch.put(b"key", b"v1")
batch.delete(b"key")
batch.put(b"key", b"v2")
batch.put(b"key", b"v3")
.. py:method:: __init__(data=None)
Creates a WriteBatch.
:param bytes data:
A serialized version of a previous WriteBatch. As retrieved
from a previous .data() call. If ``None`` a empty WriteBatch is
generated
.. py:method:: put(key, value)
Store the mapping "key->value" in the database.
:param bytes key: Name of the entry to store
:param bytes value: Data of this entry
.. py:method:: merge(key, value)
Merge "value" with the existing value of "key" in the database.
:param bytes key: Name of the entry to merge
:param bytes value: Data to merge
.. py:method:: delete(key)
If the database contains a mapping for "key", erase it. Else do nothing.
:param bytes key: Key to erase
.. py:method:: clear()
Clear all updates buffered in this batch.
.. note::
Don't call this method if there is an outstanding iterator.
Calling :py:meth:`rocksdb.WriteBatch.clear()` with outstanding
iterator, leads to SEGFAULT.
.. py:method:: data()
Retrieve the serialized version of this batch.
:rtype: ``bytes``
.. py:method:: count()
Returns the number of updates in the batch
:rtype: int
.. py:method:: __iter__()
Returns an iterator over the current contents of the write batch.
If you add new items to the batch, they are not visible for this
iterator. Create a new one if you need to see them.
.. note::
Calling :py:meth:`rocksdb.WriteBatch.clear()` on the write batch
invalidates the iterator. Using a iterator where its corresponding
write batch has been cleared, leads to SEGFAULT.
:rtype: :py:class:`rocksdb.WriteBatchIterator`
WriteBatchIterator
==================
.. py:class:: rocksdb.WriteBatchIterator
.. py:method:: __iter__()
Returns self.
.. py:method:: __next__()
Returns the next item inside the corresponding write batch.
The return value is a tuple of always size three.
First item (Name of the operation):
* ``"Put"``
* ``"Merge"``
* ``"Delete"``
Second item (key):
Key for this operation.
Third item (value):
The value for this operation. Empty for ``"Delete"``.
Repair DB
=========
.. py:function:: repair_db(db_name, opts)
:param unicode db_name: Name of the database to open
:param opts: Options for this specific database
:type opts: :py:class:`rocksdb.Options`
If a DB cannot be opened, you may attempt to call this method to
resurrect as much of the contents of the database as possible.
Some data may be lost, so be careful when calling this function
on a database that contains important information.
Errors
======
.. py:exception:: rocksdb.errors.NotFound
.. py:exception:: rocksdb.errors.Corruption
.. py:exception:: rocksdb.errors.NotSupported
.. py:exception:: rocksdb.errors.InvalidArgument
.. py:exception:: rocksdb.errors.RocksIOError
.. py:exception:: rocksdb.errors.MergeInProgress
.. py:exception:: rocksdb.errors.Incomplete

View file

@ -1,11 +0,0 @@
Python driver for RocksDB
=========================
.. py:module:: rocksdb
.. toctree::
Options <options>
Database <database>
Interfaces <interfaces>
Backup <backup>

View file

@ -1,254 +0,0 @@
Interfaces
**********
Comparator
==========
.. py:class:: rocksdb.interfaces.Comparator
A Comparator object provides a total order across slices that are
used as keys in an sstable or a database. A Comparator implementation
must be thread-safe since rocksdb may invoke its methods concurrently
from multiple threads.
.. py:method:: compare(a, b)
Three-way comparison.
:param bytes a: First field to compare
:param bytes b: Second field to compare
:returns: * -1 if a < b
* 0 if a == b
* 1 if a > b
:rtype: ``int``
.. py:method:: name()
The name of the comparator. Used to check for comparator
mismatches (i.e., a DB created with one comparator is
accessed using a different comparator).
The client of this package should switch to a new name whenever
the comparator implementation changes in a way that will cause
the relative ordering of any two keys to change.
Names starting with "rocksdb." are reserved and should not be used
by any clients of this package.
:rtype: ``bytes``
Merge Operator
==============
Essentially, a MergeOperator specifies the SEMANTICS of a merge, which only
client knows. It could be numeric addition, list append, string
concatenation, edit data structure, whatever.
The library, on the other hand, is concerned with the exercise of this
interface, at the right time (during get, iteration, compaction...)
To use merge, the client needs to provide an object implementing one of
the following interfaces:
* AssociativeMergeOperator - for most simple semantics (always take
two values, and merge them into one value, which is then put back
into rocksdb).
numeric addition and string concatenation are examples.
* MergeOperator - the generic class for all the more complex operations.
One method (FullMerge) to merge a Put/Delete value with a merge operand.
Another method (PartialMerge) that merges two operands together.
This is especially useful if your key values have a complex structure but
you would still like to support client-specific incremental updates.
AssociativeMergeOperator is simpler to implement.
MergeOperator is simply more powerful.
See this page for more details
https://github.com/facebook/rocksdb/wiki/Merge-Operator
AssociativeMergeOperator
------------------------
.. py:class:: rocksdb.interfaces.AssociativeMergeOperator
.. py:method:: merge(key, existing_value, value)
Gives the client a way to express the read -> modify -> write semantics
:param bytes key: The key that's associated with this merge operation
:param bytes existing_value: The current value in the db.
``None`` indicates the key does not exist
before this op
:param bytes value: The value to update/merge the existing_value with
:returns: ``True`` and the new value on success.
All values passed in will be client-specific values.
So if this method returns false, it is because client
specified bad data or there was internal corruption.
The client should assume that this will be treated as an
error by the library.
:rtype: ``(bool, bytes)``
.. py:method:: name()
The name of the MergeOperator. Used to check for MergeOperator mismatches.
For example a DB created with one MergeOperator is accessed using a
different MergeOperator.
:rtype: ``bytes``
MergeOperator
-------------
.. py:class:: rocksdb.interfaces.MergeOperator
.. py:method:: full_merge(key, existing_value, operand_list)
Gives the client a way to express the read -> modify -> write semantics
:param bytes key: The key that's associated with this merge operation.
Client could multiplex the merge operator based on it
if the key space is partitioned and different subspaces
refer to different types of data which have different
merge operation semantics
:param bytes existing_value: The current value in the db.
``None`` indicates the key does not exist
before this op
:param operand_list: The sequence of merge operations to apply.
:type operand_list: list of bytes
:returns: ``True`` and the new value on success.
All values passed in will be client-specific values.
So if this method returns false, it is because client
specified bad data or there was internal corruption.
The client should assume that this will be treated as an
error by the library.
:rtype: ``(bool, bytes)``
.. py:method:: partial_merge(key, left_operand, right_operand)
This function performs merge(left_op, right_op)
when both the operands are themselves merge operation types
that you would have passed to a DB::Merge() call in the same order.
For example DB::Merge(key,left_op), followed by DB::Merge(key,right_op)).
PartialMerge should combine them into a single merge operation that is
returned together with ``True``
This new value should be constructed such that a call to
DB::Merge(key, new_value) would yield the same result as a call
to DB::Merge(key, left_op) followed by DB::Merge(key, right_op).
If it is impossible or infeasible to combine the two operations,
return ``(False, None)`` The library will internally keep track of the
operations, and apply them in the correct order once a base-value
(a Put/Delete/End-of-Database) is seen.
:param bytes key: the key that is associated with this merge operation.
:param bytes left_operand: First operand to merge
:param bytes right_operand: Second operand to merge
:rtype: ``(bool, bytes)``
.. note::
Presently there is no way to differentiate between error/corruption
and simply "return false". For now, the client should simply return
false in any case it cannot perform partial-merge, regardless of reason.
If there is corruption in the data, handle it in the FullMerge() function,
and return false there.
.. py:method:: name()
The name of the MergeOperator. Used to check for MergeOperator mismatches.
For example a DB created with one MergeOperator is accessed using a
different MergeOperator.
:rtype: ``bytes``
FilterPolicy
============
.. py:class:: rocksdb.interfaces.FilterPolicy
.. py:method:: create_filter(keys)
Create a bytestring which can act as a filter for keys.
:param keys: list of keys (potentially with duplicates)
that are ordered according to the user supplied
comparator.
:type keys: list of bytes
:returns: A filter that summarizes keys
:rtype: ``bytes``
.. py:method:: key_may_match(key, filter)
Check if the key is maybe in the filter.
:param bytes key: Key for a single entry inside the database
:param bytes filter: Contains the data returned by a preceding call
to create_filter on this class
:returns: This method must return ``True`` if the key was in the list
of keys passed to create_filter().
This method may return ``True`` or ``False`` if the key was
not on the list, but it should aim to return ``False`` with
a high probability.
:rtype: ``bool``
.. py:method:: name()
Return the name of this policy. Note that if the filter encoding
changes in an incompatible way, the name returned by this method
must be changed. Otherwise, old incompatible filters may be
passed to methods of this type.
:rtype: ``bytes``
SliceTransform
==============
.. py:class:: rocksdb.interfaces.SliceTransform
SliceTransform is currently used to implement the 'prefix-API' of rocksdb.
https://github.com/facebook/rocksdb/wiki/Proposal-for-prefix-API
.. py:method:: transform(src)
:param bytes src: Full key to extract the prefix from.
:returns: A tuple of two interges ``(offset, size)``.
Where the first integer is the offset within the ``src``
and the second the size of the prefix after the offset.
Which means the prefix is generted by ``src[offset:offset+size]``
:rtype: ``(int, int)``
.. py:method:: in_domain(src)
Decide if a prefix can be extraced from ``src``.
Only if this method returns ``True`` :py:meth:`transform` will be
called.
:param bytes src: Full key to check.
:rtype: ``bool``
.. py:method:: in_range(prefix)
Checks if prefix is a valid prefix
:param bytes prefix: Prefix to check.
:returns: ``True`` if ``prefix`` is a valid prefix.
:rtype: ``bool``
.. py:method:: name()
Return the name of this transformation.
:rtype: ``bytes``

View file

@ -1,969 +0,0 @@
Options creation
****************
Options object
==============
.. py:class:: rocksdb.Options
.. IMPORTANT::
The default values mentioned here, describe the values of the
C++ library only. This wrapper does not set any default value
itself. So as soon as the rocksdb developers change a default value
this document could be outdated. So if you really depend on a default
value, double check it with the according version of the C++ library.
| Most recent default values should be here
| https://github.com/facebook/rocksdb/blob/master/include/rocksdb/options.h
| https://github.com/facebook/rocksdb/blob/master/util/options.cc
.. py:method:: __init__(**kwargs)
All options mentioned below can also be passed as keyword-arguments in
the constructor. For example::
import rocksdb
opts = rocksdb.Options(create_if_missing=True)
# is the same as
opts = rocksdb.Options()
opts.create_if_missing = True
.. py:attribute:: create_if_missing
If ``True``, the database will be created if it is missing.
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: error_if_exists
If ``True``, an error is raised if the database already exists.
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: paranoid_checks
If ``True``, the implementation will do aggressive checking of the
data it is processing and will stop early if it detects any
errors. This may have unforeseen ramifications: for example, a
corruption of one DB entry may cause a large number of entries to
become unreadable or for the entire DB to become unopenable.
If any of the writes to the database fails (Put, Delete, Merge, Write),
the database will switch to read-only mode and fail all other
Write operations.
| *Type:* ``bool``
| *Default:* ``True``
.. py:attribute:: write_buffer_size
Amount of data to build up in memory (backed by an unsorted log
on disk) before converting to a sorted on-disk file.
Larger values increase performance, especially during bulk loads.
Up to max_write_buffer_number write buffers may be held in memory
at the same time, so you may wish to adjust this parameter to control
memory usage. Also, a larger write buffer will result in a longer recovery
time the next time the database is opened.
| *Type:* ``int``
| *Default:* ``4194304``
.. py:attribute:: max_write_buffer_number
The maximum number of write buffers that are built up in memory.
The default is 2, so that when 1 write buffer is being flushed to
storage, new writes can continue to the other write buffer.
| *Type:* ``int``
| *Default:* ``2``
.. py:attribute:: min_write_buffer_number_to_merge
The minimum number of write buffers that will be merged together
before writing to storage. If set to 1, then
all write buffers are fushed to L0 as individual files and this increases
read amplification because a get request has to check in all of these
files. Also, an in-memory merge may result in writing lesser
data to storage if there are duplicate records in each of these
individual write buffers.
| *Type:* ``int``
| *Default:* ``1``
.. py:attribute:: max_open_files
Number of open files that can be used by the DB. You may need to
increase this if your database has a large working set. Value -1 means
files opened are always kept open. You can estimate number of
files based on target_file_size_base and target_file_size_multiplier
for level-based compaction.
For universal-style compaction, you can usually set it to -1.
| *Type:* ``int``
| *Default:* ``5000``
.. py:attribute:: compression
Compress blocks using the specified compression algorithm.
This parameter can be changed dynamically.
| *Type:* Member of :py:class:`rocksdb.CompressionType`
| *Default:* :py:attr:`rocksdb.CompressionType.snappy_compression`
.. py:attribute:: num_levels
Number of levels for this database
| *Type:* ``int``
| *Default:* ``7``
.. py:attribute:: level0_file_num_compaction_trigger
Number of files to trigger level-0 compaction. A value <0 means that
level-0 compaction will not be triggered by number of files at all.
| *Type:* ``int``
| *Default:* ``4``
.. py:attribute:: level0_slowdown_writes_trigger
Soft limit on number of level-0 files. We start slowing down writes at this
point. A value <0 means that no writing slow down will be triggered by
number of files in level-0.
| *Type:* ``int``
| *Default:* ``20``
.. py:attribute:: level0_stop_writes_trigger
Maximum number of level-0 files. We stop writes at this point.
| *Type:* ``int``
| *Default:* ``24``
.. py:attribute:: max_mem_compaction_level
Maximum level to which a new compacted memtable is pushed if it
does not create overlap. We try to push to level 2 to avoid the
relatively expensive level 0=>1 compactions and to avoid some
expensive manifest file operations. We do not push all the way to
the largest level since that can generate a lot of wasted disk
space if the same key space is being repeatedly overwritten.
| *Type:* ``int``
| *Default:* ``2``
.. py:attribute:: target_file_size_base
| Target file size for compaction.
| target_file_size_base is per-file size for level-1.
| Target file size for level L can be calculated by
| target_file_size_base * (target_file_size_multiplier ^ (L-1)).
For example, if target_file_size_base is 2MB and
target_file_size_multiplier is 10, then each file on level-1 will
be 2MB, and each file on level 2 will be 20MB,
and each file on level-3 will be 200MB.
| *Type:* ``int``
| *Default:* ``2097152``
.. py:attribute:: target_file_size_multiplier
| by default target_file_size_multiplier is 1, which means
| by default files in different levels will have similar size.
| *Type:* ``int``
| *Default:* ``1``
.. py:attribute:: max_bytes_for_level_base
Control maximum total data size for a level.
*max_bytes_for_level_base* is the max total for level-1.
Maximum number of bytes for level L can be calculated as
(*max_bytes_for_level_base*) * (*max_bytes_for_level_multiplier* ^ (L-1))
For example, if *max_bytes_for_level_base* is 20MB, and if
*max_bytes_for_level_multiplier* is 10, total data size for level-1
will be 20MB, total file size for level-2 will be 200MB,
and total file size for level-3 will be 2GB.
| *Type:* ``int``
| *Default:* ``10485760``
.. py:attribute:: max_bytes_for_level_multiplier
See :py:attr:`max_bytes_for_level_base`
| *Type:* ``int``
| *Default:* ``10``
.. py:attribute:: max_bytes_for_level_multiplier_additional
Different max-size multipliers for different levels.
These are multiplied by max_bytes_for_level_multiplier to arrive
at the max-size of each level.
| *Type:* ``[int]``
| *Default:* ``[1, 1, 1, 1, 1, 1, 1]``
.. py:attribute:: max_compaction_bytes
We try to limit number of bytes in one compaction to be lower than this
threshold. But it's not guaranteed.
Value 0 will be sanitized.
| *Type:* ``int``
| *Default:* ``target_file_size_base * 25``
.. py:attribute:: use_fsync
If true, then every store to stable storage will issue a fsync.
If false, then every store to stable storage will issue a fdatasync.
This parameter should be set to true while storing data to
filesystem like ext3 that can lose files after a reboot.
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: db_log_dir
This specifies the info LOG dir.
If it is empty, the log files will be in the same dir as data.
If it is non empty, the log files will be in the specified dir,
and the db data dir's absolute path will be used as the log file
name's prefix.
| *Type:* ``unicode``
| *Default:* ``""``
.. py:attribute:: wal_dir
This specifies the absolute dir path for write-ahead logs (WAL).
If it is empty, the log files will be in the same dir as data,
dbname is used as the data dir by default.
If it is non empty, the log files will be in kept the specified dir.
When destroying the db, all log files in wal_dir and the dir itself is deleted
| *Type:* ``unicode``
| *Default:* ``""``
.. py:attribute:: delete_obsolete_files_period_micros
The periodicity when obsolete files get deleted. The default
value is 6 hours. The files that get out of scope by compaction
process will still get automatically delete on every compaction,
regardless of this setting
| *Type:* ``int``
| *Default:* ``21600000000``
.. py:attribute:: max_background_compactions
Maximum number of concurrent background jobs, submitted to
the default LOW priority thread pool
| *Type:* ``int``
| *Default:* ``1``
.. py:attribute:: max_background_flushes
Maximum number of concurrent background memtable flush jobs, submitted to
the HIGH priority thread pool.
By default, all background jobs (major compaction and memtable flush) go
to the LOW priority pool. If this option is set to a positive number,
memtable flush jobs will be submitted to the HIGH priority pool.
It is important when the same Env is shared by multiple db instances.
Without a separate pool, long running major compaction jobs could
potentially block memtable flush jobs of other db instances, leading to
unnecessary Put stalls.
| *Type:* ``int``
| *Default:* ``1``
.. py:attribute:: max_log_file_size
Specify the maximal size of the info log file. If the log file
is larger than `max_log_file_size`, a new info log file will
be created.
If max_log_file_size == 0, all logs will be written to one
log file.
| *Type:* ``int``
| *Default:* ``0``
.. py:attribute:: log_file_time_to_roll
Time for the info log file to roll (in seconds).
If specified with non-zero value, log file will be rolled
if it has been active longer than `log_file_time_to_roll`.
A value of ``0`` means disabled.
| *Type:* ``int``
| *Default:* ``0``
.. py:attribute:: keep_log_file_num
Maximal info log files to be kept.
| *Type:* ``int``
| *Default:* ``1000``
.. py:attribute:: soft_rate_limit
Puts are delayed 0-1 ms when any level has a compaction score that exceeds
soft_rate_limit. This is ignored when == 0.0.
CONSTRAINT: soft_rate_limit <= hard_rate_limit. If this constraint does not
hold, RocksDB will set soft_rate_limit = hard_rate_limit.
A value of ``0`` means disabled.
| *Type:* ``float``
| *Default:* ``0``
.. py:attribute:: hard_rate_limit
Puts are delayed 1ms at a time when any level has a compaction score that
exceeds hard_rate_limit. This is ignored when <= 1.0.
A value fo ``0`` means disabled.
| *Type:* ``float``
| *Default:* ``0``
.. py:attribute:: rate_limit_delay_max_milliseconds
Max time a put will be stalled when hard_rate_limit is enforced. If 0, then
there is no limit.
| *Type:* ``int``
| *Default:* ``1000``
.. py:attribute:: max_manifest_file_size
manifest file is rolled over on reaching this limit.
The older manifest file be deleted.
The default value is MAX_INT so that roll-over does not take place.
| *Type:* ``int``
| *Default:* ``(2**64) - 1``
.. py:attribute:: table_cache_numshardbits
Number of shards used for table cache.
| *Type:* ``int``
| *Default:* ``4``
.. py:attribute:: arena_block_size
size of one block in arena memory allocation.
If <= 0, a proper value is automatically calculated (usually 1/10 of
writer_buffer_size).
| *Type:* ``int``
| *Default:* ``0``
.. py:attribute:: disable_auto_compactions
Disable automatic compactions. Manual compactions can still
be issued on this database.
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: wal_ttl_seconds, wal_size_limit_mb
The following two fields affect how archived logs will be deleted.
1. If both set to 0, logs will be deleted asap and will not get into
the archive.
2. If wal_ttl_seconds is 0 and wal_size_limit_mb is not 0,
WAL files will be checked every 10 min and if total size is greater
then wal_size_limit_mb, they will be deleted starting with the
earliest until size_limit is met. All empty files will be deleted.
3. If wal_ttl_seconds is not 0 and wal_size_limit_mb is 0, then
WAL files will be checked every wal_ttl_secondsi / 2 and those that
are older than wal_ttl_seconds will be deleted.
4. If both are not 0, WAL files will be checked every 10 min and both
checks will be performed with ttl being first.
| *Type:* ``int``
| *Default:* ``0``
.. py:attribute:: manifest_preallocation_size
Number of bytes to preallocate (via fallocate) the manifest
files. Default is 4mb, which is reasonable to reduce random IO
as well as prevent overallocation for mounts that preallocate
large amounts of data (such as xfs's allocsize option).
| *Type:* ``int``
| *Default:* ``4194304``
.. py:attribute:: purge_redundant_kvs_while_flush
Purge duplicate/deleted keys when a memtable is flushed to storage.
| *Type:* ``bool``
| *Default:* ``True``
.. py:attribute:: allow_mmap_reads
Allow the OS to mmap file for reading sst tables
| *Type:* ``bool``
| *Default:* ``True``
.. py:attribute:: allow_mmap_writes
Allow the OS to mmap file for writing
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: is_fd_close_on_exec
Disable child process inherit open files
| *Type:* ``bool``
| *Default:* ``True``
.. py:attribute:: skip_log_error_on_recovery
Skip log corruption error on recovery
(If client is ok with losing most recent changes)
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: stats_dump_period_sec
If not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
| *Type:* ``int``
| *Default:* ``3600``
.. py:attribute:: advise_random_on_open
If set true, will hint the underlying file system that the file
access pattern is random, when a sst file is opened.
| *Type:* ``bool``
| *Default:* ``True``
.. py:attribute:: use_adaptive_mutex
Use adaptive mutex, which spins in the user space before resorting
to kernel. This could reduce context switch when the mutex is not
heavily contended. However, if the mutex is hot, we could end up
wasting spin time.
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: bytes_per_sync
Allows OS to incrementally sync files to disk while they are being
written, asynchronously, in the background.
Issue one request for every bytes_per_sync written. 0 turns it off.
| *Type:* ``int``
| *Default:* ``0``
.. py:attribute:: compaction_style
The compaction style. Could be set to ``"level"`` to use level-style
compaction. For universal-style compaction use ``"universal"``. For
FIFO compaction use ``"fifo"``. If no compaction style use ``"none"``.
| *Type:* ``string``
| *Default:* ``level``
.. py:attribute:: compaction_pri
If level compaction_style = kCompactionStyleLevel, for each level,
which files are prioritized to be picked to compact.
| *Type:* Member of :py:class:`rocksdb.CompactionPri`
| *Default:* :py:attr:`rocksdb.CompactionPri.kByCompensatedSize`
.. py:attribute:: compaction_options_universal
Options to use for universal-style compaction. They make only sense if
:py:attr:`rocksdb.Options.compaction_style` is set to ``"universal"``.
It is a dict with the following keys.
* ``size_ratio``:
Percentage flexibilty while comparing file size.
If the candidate file(s) size is 1% smaller than the next file's size,
then include next file into this candidate set.
Default: ``1``
* ``min_merge_width``:
The minimum number of files in a single compaction run.
Default: ``2``
* ``max_merge_width``:
The maximum number of files in a single compaction run.
Default: ``UINT_MAX``
* ``max_size_amplification_percent``:
The size amplification is defined as the amount (in percentage) of
additional storage needed to store a single byte of data in the database.
For example, a size amplification of 2% means that a database that
contains 100 bytes of user-data may occupy upto 102 bytes of
physical storage. By this definition, a fully compacted database has
a size amplification of 0%. Rocksdb uses the following heuristic
to calculate size amplification: it assumes that all files excluding
the earliest file contribute to the size amplification.
Default: ``200``, which means that a 100 byte database could require upto
300 bytes of storage.
* ``compression_size_percent``:
If this option is set to be -1 (the default value), all the output
files will follow compression type specified.
If this option is not negative, we will try to make sure compressed
size is just above this value. In normal cases, at least this
percentage of data will be compressed.
When we are compacting to a new file, here is the criteria whether
it needs to be compressed: assuming here are the list of files sorted
by generation time: ``A1...An B1...Bm C1...Ct``
where ``A1`` is the newest and ``Ct`` is the oldest, and we are going
to compact ``B1...Bm``, we calculate the total size of all the files
as total_size, as well as the total size of ``C1...Ct`` as
``total_C``, the compaction output file will be compressed if
``total_C / total_size < this percentage``.
Default: -1
* ``stop_style``:
The algorithm used to stop picking files into a single compaction.
Can be either ``"similar_size"`` or ``"total_size"``.
* ``similar_size``: Pick files of similar size.
* ``total_size``: Total size of picked files is greater than next file.
Default: ``"total_size"``
For setting options, just assign a dict with the fields to set.
It is allowed to omit keys in this dict. Missing keys are just not set
to the underlying options object.
This example just changes the stop_style and leaves the other options
untouched. ::
opts = rocksdb.Options()
opts.compaction_options_universal = {'stop_style': 'similar_size'}
.. py:attribute:: max_sequential_skip_in_iterations
An iteration->Next() sequentially skips over keys with the same
user-key unless this option is set. This number specifies the number
of keys (with the same userkey) that will be sequentially
skipped before a reseek is issued.
| *Type:* ``int``
| *Default:* ``8``
.. py:attribute:: memtable_factory
This is a factory that provides MemTableRep objects.
Right now you can assing instances of the following classes.
* :py:class:`rocksdb.VectorMemtableFactory`
* :py:class:`rocksdb.SkipListMemtableFactory`
* :py:class:`rocksdb.HashSkipListMemtableFactory`
* :py:class:`rocksdb.HashLinkListMemtableFactory`
*Default:* :py:class:`rocksdb.SkipListMemtableFactory`
.. py:attribute:: table_factory
Factory for the files forming the persisten data storage.
Sometimes they are also named SST-Files. Right now you can assign
instances of the following classes.
* :py:class:`rocksdb.BlockBasedTableFactory`
* :py:class:`rocksdb.PlainTableFactory`
* :py:class:`rocksdb.TotalOrderPlainTableFactory`
*Default:* :py:class:`rocksdb.BlockBasedTableFactory`
.. py:attribute:: inplace_update_support
Allows thread-safe inplace updates. Requires Updates if
* key exists in current memtable
* new sizeof(new_value) <= sizeof(old_value)
* old_value for that key is a put i.e. kTypeValue
| *Type:* ``bool``
| *Default:* ``False``
.. py:attribute:: inplace_update_num_locks
| Number of locks used for inplace update.
| Default: 10000, if inplace_update_support = true, else 0.
| *Type:* ``int``
| *Default:* ``10000``
.. py:attribute:: comparator
Comparator used to define the order of keys in the table.
A python comparator must implement the :py:class:`rocksdb.interfaces.Comparator`
interface.
*Requires*: The client must ensure that the comparator supplied
here has the same name and orders keys *exactly* the same as the
comparator provided to previous open calls on the same DB.
*Default:* :py:class:`rocksdb.BytewiseComparator`
.. py:attribute:: merge_operator
The client must provide a merge operator if Merge operation
needs to be accessed. Calling Merge on a DB without a merge operator
would result in :py:exc:`rocksdb.errors.NotSupported`. The client must
ensure that the merge operator supplied here has the same name and
*exactly* the same semantics as the merge operator provided to
previous open calls on the same DB. The only exception is reserved
for upgrade, where a DB previously without a merge operator is
introduced to Merge operation for the first time. It's necessary to
specify a merge operator when openning the DB in this case.
A python merge operator must implement the
:py:class:`rocksdb.interfaces.MergeOperator` or
:py:class:`rocksdb.interfaces.AssociativeMergeOperator`
interface.
*Default:* ``None``
.. py:attribute:: prefix_extractor
If not ``None``, use the specified function to determine the
prefixes for keys. These prefixes will be placed in the filter.
Depending on the workload, this can reduce the number of read-IOP
cost for scans when a prefix is passed to the calls generating an
iterator (:py:meth:`rocksdb.DB.iterkeys` ...).
A python prefix_extractor must implement the
:py:class:`rocksdb.interfaces.SliceTransform` interface
For prefix filtering to work properly, "prefix_extractor" and "comparator"
must be such that the following properties hold:
1. ``key.starts_with(prefix(key))``
2. ``compare(prefix(key), key) <= 0``
3. ``If compare(k1, k2) <= 0, then compare(prefix(k1), prefix(k2)) <= 0``
4. ``prefix(prefix(key)) == prefix(key)``
*Default:* ``None``
.. py:attribute:: row_cache
A global cache for table-level rows. If ``None`` this cache is not used.
Otherwise it must be an instance of :py:class:`rocksdb.LRUCache`
*Default:* ``None``
CompactionPri
================
.. py:class:: rocksdb.CompactionPri
Defines the support compression types
.. py:attribute:: kByCompensatedSize
.. py:attribute:: kOldestLargestSeqFirst
.. py:attribute:: kOldestSmallestSeqFirst
.. py:attribute:: kMinOverlappingRatio
CompressionTypes
================
.. py:class:: rocksdb.CompressionType
Defines the support compression types
.. py:attribute:: no_compression
.. py:attribute:: snappy_compression
.. py:attribute:: zlib_compression
.. py:attribute:: bzip2_compression
.. py:attribute:: lz4_compression
.. py:attribute:: lz4hc_compression
.. py:attribute:: xpress_compression
.. py:attribute:: zstd_compression
.. py:attribute:: zstdnotfinal_compression
.. py:attribute:: disable_compression
BytewiseComparator
==================
.. py:class:: rocksdb.BytewiseComparator
Wraps the rocksdb Bytewise Comparator, it uses lexicographic byte-wise
ordering
BloomFilterPolicy
=================
.. py:class:: rocksdb.BloomFilterPolicy
Wraps the rocksdb BloomFilter Policy
.. py:method:: __init__(bits_per_key)
:param int bits_per_key:
Specifies the approximately number of bits per key.
A good value for bits_per_key is 10, which yields a filter with
~ 1% false positive rate.
LRUCache
========
.. py:class:: rocksdb.LRUCache
Wraps the rocksdb LRUCache
.. py:method:: __init__(capacity, shard_bits=None)
Create a new cache with a fixed size capacity (in bytes).
The cache is sharded to 2^numShardBits shards, by hash of the key.
The total capacity is divided and evenly assigned to each shard.
.. _table_factories_label:
TableFactories
==============
Currently RocksDB supports two types of tables: plain table and block-based table.
Instances of this classes can assigned to :py:attr:`rocksdb.Options.table_factory`
* *Block-based table:* This is the default table type that RocksDB inherited from
LevelDB. It was designed for storing data in hard disk or flash device.
* *Plain table:* It is one of RocksDB's SST file format optimized
for low query latency on pure-memory or really low-latency media.
Tutorial of rocksdb table formats is available here:
https://github.com/facebook/rocksdb/wiki/A-Tutorial-of-RocksDB-SST-formats
.. py:class:: rocksdb.BlockBasedTableFactory
Wraps BlockBasedTableFactory of RocksDB.
.. py:method:: __init__(index_type='binary_search', hash_index_allow_collision=True, checksum='crc32', block_cache, block_cache_compressed, filter_policy=None, no_block_cache=False, block_size=None, block_size_deviation=None, block_restart_interval=None, whole_key_filtering=None):
:param string index_type:
* ``binary_search`` a space efficient index block that is optimized
for binary-search-based index.
* ``hash_search`` the hash index. If enabled, will do hash lookup
when `Options.prefix_extractor` is provided.
:param bool hash_index_allow_collision:
Influence the behavior when ``hash_search`` is used.
If ``False``, stores a precise prefix to block range mapping.
If ``True``, does not store prefix and allows prefix hash collision
(less memory consumption)
:param string checksum:
Use the specified checksum type. Newly created table files will be
protected with this checksum type. Old table files will still be readable,
even though they have different checksum type.
Can be either ``crc32`` or ``xxhash``.
:param block_cache:
Control over blocks (user data is stored in a set of blocks, and
a block is the unit of reading from disk).
If ``None``, rocksdb will automatically create and use an 8MB internal cache.
If not ``None`` use the specified cache for blocks. In that case it must
be an instance of :py:class:`rocksdb.LRUCache`
:param block_cache_compressed:
If ``None``, rocksdb will not use a compressed block cache.
If not ``None`` use the specified cache for compressed blocks. In that
case it must be an instance of :py:class:`rocksdb.LRUCache`
:param filter_policy:
If not ``None`` use the specified filter policy to reduce disk reads.
A python filter policy must implement the
:py:class:`rocksdb.interfaces.FilterPolicy` interface.
Recommended is a instance of :py:class:`rocksdb.BloomFilterPolicy`
:param bool no_block_cache:
Disable block cache. If this is set to true,
then no block cache should be used, and the block_cache should
point to ``None``
:param int block_size:
If set to ``None`` the rocksdb default of ``4096`` is used.
Approximate size of user data packed per block. Note that the
block size specified here corresponds to uncompressed data. The
actual size of the unit read from disk may be smaller if
compression is enabled. This parameter can be changed dynamically.
:param int block_size_deviation:
If set to ``None`` the rocksdb default of ``10`` is used.
This is used to close a block before it reaches the configured
'block_size'. If the percentage of free space in the current block is less
than this specified number and adding a new record to the block will
exceed the configured block size, then this block will be closed and the
new record will be written to the next block.
:param int block_restart_interval:
If set to ``None`` the rocksdb default of ``16`` is used.
Number of keys between restart points for delta encoding of keys.
This parameter can be changed dynamically. Most clients should
leave this parameter alone.
:param bool whole_key_filtering:
If set to ``None`` the rocksdb default of ``True`` is used.
If ``True``, place whole keys in the filter (not just prefixes).
This must generally be true for gets to be efficient.
.. py:class:: rocksdb.PlainTableFactory
Plain Table with prefix-only seek. It wraps rocksdb PlainTableFactory.
For this factory, you need to set :py:attr:`rocksdb.Options.prefix_extractor`
properly to make it work. Look-up will start with prefix hash lookup for
key prefix. Inside the hash bucket found, a binary search is executed for
hash conflicts. Finally, a linear search is used.
.. py:method:: __init__(user_key_len=0, bloom_bits_per_key=10, hash_table_ratio=0.75, index_sparseness=10, huge_page_tlb_size=0, encoding_type='plain', full_scan_mode=False, store_index_in_file=False)
:param int user_key_len:
Plain table has optimization for fix-sized keys, which can be
specified via user_key_len.
Alternatively, you can pass `0` if your keys have variable lengths.
:param int bloom_bits_per_key:
The number of bits used for bloom filer per prefix.
You may disable it by passing `0`.
:param float hash_table_ratio:
The desired utilization of the hash table used for prefix hashing.
hash_table_ratio = number of prefixes / #buckets in the hash table.
:param int index_sparseness:
Inside each prefix, need to build one index record for how
many keys for binary search inside each hash bucket.
For encoding type ``prefix``, the value will be used when
writing to determine an interval to rewrite the full key.
It will also be used as a suggestion and satisfied when possible.
:param int huge_page_tlb_size:
If <=0, allocate hash indexes and blooms from malloc.
Otherwise from huge page TLB.
The user needs to reserve huge pages for it to be allocated, like:
``sysctl -w vm.nr_hugepages=20``
See linux doc Documentation/vm/hugetlbpage.txt
:param string encoding_type:
How to encode the keys. The value will determine how to encode keys
when writing to a new SST file. This value will be stored
inside the SST file which will be used when reading from the
file, which makes it possible for users to choose different
encoding type when reopening a DB. Files with different
encoding types can co-exist in the same DB and can be read.
* ``plain``: Always write full keys without any special encoding.
* ``prefix``: Find opportunity to write the same prefix once for multiple rows.
In some cases, when a key follows a previous key with the same prefix,
instead of writing out the full key, it just writes out the size of the
shared prefix, as well as other bytes, to save some bytes.
When using this option, the user is required to use the same prefix
extractor to make sure the same prefix will be extracted from the same key.
The Name() value of the prefix extractor will be stored in the file.
When reopening the file, the name of the options.prefix_extractor given
will be bitwise compared to the prefix extractors stored in the file.
An error will be returned if the two don't match.
:param bool full_scan_mode:
Mode for reading the whole file one record by one without using the index.
:param bool store_index_in_file:
Compute plain table index and bloom filter during file building
and store it in file. When reading file, index will be mmaped
instead of recomputation.
.. _memtable_factories_label:
MemtableFactories
=================
RocksDB has different classes to represent the in-memory buffer for the current
operations. You have to assing instances of the following classes to
:py:attr:`rocksdb.Options.memtable_factory`.
This page has a comparison the most popular ones.
https://github.com/facebook/rocksdb/wiki/Hash-based-memtable-implementations
.. py:class:: rocksdb.VectorMemtableFactory
This creates MemTableReps that are backed by an std::vector.
On iteration, the vector is sorted. This is useful for workloads where
iteration is very rare and writes are generally not issued after reads begin.
.. py:method:: __init__(count=0)
:param int count:
Passed to the constructor of the underlying std::vector of each
VectorRep. On initialization, the underlying array will be at
least count bytes reserved for usage.
.. py:class:: rocksdb.SkipListMemtableFactory
This uses a skip list to store keys.
.. py:method:: __init__()
.. py:class:: rocksdb.HashSkipListMemtableFactory
This class contains a fixed array of buckets, each pointing
to a skiplist (null if the bucket is empty).
.. note::
:py:attr:`rocksdb.Options.prefix_extractor` must be set, otherwise
rocksdb fails back to skip-list.
.. py:method:: __init__(bucket_count = 1000000, skiplist_height = 4, skiplist_branching_factor = 4)
:param int bucket_count: number of fixed array buckets
:param int skiplist_height: the max height of the skiplist
:param int skiplist_branching_factor:
probabilistic size ratio between adjacent link lists in the skiplist
.. py:class:: rocksdb.HashLinkListMemtableFactory
The factory is to create memtables with a hashed linked list.
It contains a fixed array of buckets, each pointing to a sorted single
linked list (null if the bucket is empty).
.. note::
:py:attr:`rocksdb.Options.prefix_extractor` must be set, otherwise
rocksdb fails back to skip-list.
.. py:method:: __init__(bucket_count=50000)
:param int bucket: number of fixed array buckets

View file

@ -1,261 +0,0 @@
# -*- coding: utf-8 -*-
#
# python-rocksdb documentation build configuration file, created by
# sphinx-quickstart on Tue Dec 31 12:50:54 2013.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.todo',
'sphinx.ext.viewcode',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'lbry-rocksdb'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.8'
# The full version, including alpha/beta/rc tags.
release = '0.8.2'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
# html_theme = 'default'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Output file base name for HTML help builder.
htmlhelp_basename = 'lbry-rocksdbdoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'lbry-rocksdb.tex', u'lbry-rocksdb Documentation',
u'sh', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'lbry-rocksdb', u'python-rocksdb Documentation',
[u'sh'], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'lbry-rocksdb', u'lbry-rocksdb Documentation',
u'sh', 'lbry-rocksdb', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False

View file

@ -1,42 +0,0 @@
Welcome to lbry-rocksdb's documentation!
==========================================
Overview
--------
Python bindings to the C++ interface of http://rocksdb.org/ using cython::
import rocksdb
db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
db.put(b"a", b"b")
print db.get(b"a")
Tested with python 3.7, 3.8, and 3.9 with RocksDB version 6.25.3
.. toctree::
:maxdepth: 2
Instructions how to install <installation>
Tutorial <tutorial/index>
API <api/index>
Changelog <changelog>
Contributing
------------
Source can be found on `github <https://github.com/lbryio/lbry-rocksdb>`_.
Feel free to fork and send pull-requests or create issues on the
`github issue tracker <https://github.com/lbryio/lbry-rocksdb/issues>`_
RoadMap/TODO
------------
No plans so far. Please submit wishes to the github issues.
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View file

@ -1,22 +0,0 @@
Installing
==========
.. highlight:: bash
From pypi
*********
.. code-block:: bash
pip install lbry-rocksdb
From source (ubuntu)
********************
.. code-block:: bash
sudo apt install build-essential binutils
git clone https://github.com/lbryio/lbry-rocksdb.git
cd lbry-rocksdb
git submodule update --init --recursive
git pull --recurse-submodules
make clean && make
pip install -e .
python -m unittest discover . -v

View file

@ -1,403 +0,0 @@
Basic Usage of python-rocksdb
*****************************
Open
====
The most basic open call is ::
import rocksdb
db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
A more production ready open can look like this ::
import rocksdb
opts = rocksdb.Options()
opts.create_if_missing = True
opts.max_open_files = 300000
opts.write_buffer_size = 67108864
opts.max_write_buffer_number = 3
opts.target_file_size_base = 67108864
opts.table_factory = rocksdb.BlockBasedTableFactory(
filter_policy=rocksdb.BloomFilterPolicy(10),
block_cache=rocksdb.LRUCache(2 * (1024 ** 3)),
block_cache_compressed=rocksdb.LRUCache(500 * (1024 ** 2)))
db = rocksdb.DB("test.db", opts)
It assings a cache of 2.5G, uses a bloom filter for faster lookups and keeps
more data (64 MB) in memory before writting a .sst file.
About Bytes And Unicode
=======================
RocksDB stores all data as uninterpreted *byte strings*.
pyrocksdb behaves the same and uses nearly everywhere byte strings too.
In python2 this is the ``str`` type. In python3 the ``bytes`` type.
Since the default string type for string literals differs between python 2 and 3,
it is strongly recommended to use an explicit ``b`` prefix for all byte string
literals in both python2 and python3 code.
For example ``b'this is a byte string'``. This avoids ambiguity and ensures
that your code keeps working as intended if you switch between python2 and python3.
The only place where you can pass unicode objects are filesytem paths like
* Directory name of the database itself :py:meth:`rocksdb.DB.__init__`
* :py:attr:`rocksdb.Options.wal_dir`
* :py:attr:`rocksdb.Options.db_log_dir`
To encode this path name, `sys.getfilesystemencoding()` encoding is used.
Access
======
Store, Get, Delete is straight forward ::
# Store
db.put(b"key", b"value")
# Get
db.get(b"key")
# Delete
db.delete(b"key")
It is also possible to gather modifications and
apply them in a single operation ::
batch = rocksdb.WriteBatch()
batch.put(b"key", b"v1")
batch.delete(b"key")
batch.put(b"key", b"v2")
batch.put(b"key", b"v3")
db.write(batch)
Fetch of multiple values at once ::
db.put(b"key1", b"v1")
db.put(b"key2", b"v2")
ret = db.multi_get([b"key1", b"key2", b"key3"])
# prints b"v1"
print ret[b"key1"]
# prints None
print ret[b"key3"]
Iteration
=========
Iterators behave slightly different than expected. Per default they are not
valid. So you have to call one of its seek methods first ::
db.put(b"key1", b"v1")
db.put(b"key2", b"v2")
db.put(b"key3", b"v3")
it = db.iterkeys()
it.seek_to_first()
# prints [b'key1', b'key2', b'key3']
print list(it)
it.seek_to_last()
# prints [b'key3']
print list(it)
it.seek(b'key2')
# prints [b'key2', b'key3']
print list(it)
There are also methods to iterate over values/items ::
it = db.itervalues()
it.seek_to_first()
# prints [b'v1', b'v2', b'v3']
print list(it)
it = db.iteritems()
it.seek_to_first()
# prints [(b'key1', b'v1'), (b'key2, b'v2'), (b'key3', b'v3')]
print list(it)
Reversed iteration ::
it = db.iteritems()
it.seek_to_last()
# prints [(b'key3', b'v3'), (b'key2', b'v2'), (b'key1', b'v1')]
print list(reversed(it))
SeekForPrev (Take the example from `https://github.com/facebook/rocksdb/wiki/SeekForPrev`)::
db.put(b'a1', b'a1_value')
db.put(b'a3', b'a3_value')
db.put(b'b1', b'b1_value')
db.put(b'b2', b'b2_value')
db.put(b'c2', b'c2_value')
db.put(b'c4', b'c4_value')
it = db.iteritems()
it.seek(b'a1')
assertEqual(it.get(), (b'a1', b'a1_value'))
it.seek(b'a3')
assertEqual(it.get(), (b'a3', b'a3_value'))
it.seek_for_prev(b'c4')
assertEqual(it.get(), (b'c4', b'c4_value'))
it.seek_for_prev(b'c3')
assertEqual(it.get(), (b'c2', b'c2_value'))
Snapshots
=========
Snapshots are nice to get a consistent view on the database ::
self.db.put(b"a", b"1")
self.db.put(b"b", b"2")
snapshot = self.db.snapshot()
self.db.put(b"a", b"2")
self.db.delete(b"b")
it = self.db.iteritems()
it.seek_to_first()
# prints {b'a': b'2'}
print dict(it)
it = self.db.iteritems(snapshot=snapshot)
it.seek_to_first()
# prints {b'a': b'1', b'b': b'2'}
print dict(it)
MergeOperator
=============
Merge operators are useful for efficient read-modify-write operations.
For more details see `Merge Operator <https://github.com/facebook/rocksdb/wiki/Merge-Operator>`_
A python merge operator must either implement the
:py:class:`rocksdb.interfaces.AssociativeMergeOperator` or
:py:class:`rocksdb.interfaces.MergeOperator` interface.
The following example python merge operator implements a counter ::
class AssocCounter(rocksdb.interfaces.AssociativeMergeOperator):
def merge(self, key, existing_value, value):
if existing_value:
s = int(existing_value) + int(value)
return (True, str(s).encode('ascii'))
return (True, value)
def name(self):
return b'AssocCounter'
opts = rocksdb.Options()
opts.create_if_missing = True
opts.merge_operator = AssocCounter()
db = rocksdb.DB('test.db', opts)
db.merge(b"a", b"1")
db.merge(b"a", b"1")
# prints b'2'
print db.get(b"a")
We provide a set of default operators ``rocksdb.merge_operators.UintAddOperator`` and ``rocksdb.merge_operators.StringAppendOperator``::
from rocksdb.merge_operators import UintAddOperator, StringAppendOperator
opts = rocksdb.Options()
opts.create_if_missing = True
# you should also play with StringAppendOperator
opts.merge_operator = UintAddOperator()
db = rocksdb.DB('/tmp/test', opts)
self.db.put(b'a', struct.pack('Q', 5566))
for x in range(1000):
self.db.merge(b"a", struct.pack('Q', x))
self.assertEqual(5566 + sum(range(1000)), struct.unpack('Q', self.db.get(b'a'))[0])
PrefixExtractor
===============
According to `Prefix API <https://github.com/facebook/rocksdb/wiki/Proposal-for-prefix-API>`_
a prefix_extractor can reduce IO for scans within a prefix range.
A python prefix extractor must implement the :py:class:`rocksdb.interfaces.SliceTransform` interface.
The following example presents a prefix extractor of a static size.
So always the first 5 bytes are used as the prefix ::
class StaticPrefix(rocksdb.interfaces.SliceTransform):
def name(self):
return b'static'
def transform(self, src):
return (0, 5)
def in_domain(self, src):
return len(src) >= 5
def in_range(self, dst):
return len(dst) == 5
opts = rocksdb.Options()
opts.create_if_missing=True
opts.prefix_extractor = StaticPrefix()
db = rocksdb.DB('test.db', opts)
db.put(b'00001.x', b'x')
db.put(b'00001.y', b'y')
db.put(b'00001.z', b'z')
db.put(b'00002.x', b'x')
db.put(b'00002.y', b'y')
db.put(b'00002.z', b'z')
db.put(b'00003.x', b'x')
db.put(b'00003.y', b'y')
db.put(b'00003.z', b'z')
prefix = b'00002'
it = db.iteritems()
it.seek(prefix)
# prints {b'00002.z': b'z', b'00002.y': b'y', b'00002.x': b'x'}
print dict(itertools.takewhile(lambda item: item[0].startswith(prefix), it))
Backup And Restore
==================
Backup and Restore is done with a separate :py:class:`rocksdb.BackupEngine` object.
A backup can only be created on a living database object. ::
import rocksdb
db = rocksdb.DB("test.db", rocksdb.Options(create_if_missing=True))
db.put(b'a', b'v1')
db.put(b'b', b'v2')
db.put(b'c', b'v3')
Backup is created like this.
You can choose any path for the backup destination except the db path itself.
If ``flush_before_backup`` is ``True`` the current memtable is flushed to disk
before backup. ::
backup = rocksdb.BackupEngine("test.db/backups")
backup.create_backup(db, flush_before_backup=True)
Restore is done like this.
The two arguments are the db_dir and wal_dir, which are mostly the same. ::
backup = rocksdb.BackupEngine("test.db/backups")
backup.restore_latest_backup("test.db", "test.db")
Change Memtable Or SST Implementations
======================================
As noted here :ref:`memtable_factories_label`, RocksDB offers different implementations for the memtable
representation. Per default :py:class:`rocksdb.SkipListMemtableFactory` is used,
but changing it to a different one is veary easy.
Here is an example for HashSkipList-MemtableFactory.
Keep in mind: To use the hashed based MemtableFactories you must set
:py:attr:`rocksdb.Options.prefix_extractor`.
In this example all keys have a static prefix of len 5. ::
class StaticPrefix(rocksdb.interfaces.SliceTransform):
def name(self):
return b'static'
def transform(self, src):
return (0, 5)
def in_domain(self, src):
return len(src) >= 5
def in_range(self, dst):
return len(dst) == 5
opts = rocksdb.Options()
opts.prefix_extractor = StaticPrefix()
opts.allow_concurrent_memtable_write = False
opts.memtable_factory = rocksdb.HashSkipListMemtableFactory()
opts.create_if_missing = True
db = rocksdb.DB("test.db", opts)
db.put(b'00001.x', b'x')
db.put(b'00001.y', b'y')
db.put(b'00002.x', b'x')
For initial bulk loads the Vector-MemtableFactory makes sense. ::
opts = rocksdb.Options()
opts.allow_concurrent_memtable_write = False
opts.memtable_factory = rocksdb.VectorMemtableFactory()
opts.create_if_missing = True
db = rocksdb.DB("test.db", opts)
As noted here :ref:`table_factories_label`, it is also possible to change the
representation of the final data files.
Here is an example how to use a 'PlainTable'. ::
opts = rocksdb.Options()
opts.table_factory = rocksdb.PlainTableFactory()
opts.create_if_missing = True
db = rocksdb.DB("test.db", opts)
Change Compaction Style
=======================
RocksDB has a compaction algorithm called *universal*. This style typically
results in lower write amplification but higher space amplification than
Level Style Compaction. See here for more details,
https://github.com/facebook/rocksdb/wiki/Rocksdb-Architecture-Guide#multi-threaded-compactions
Here is an example to switch to *universal style compaction*. ::
opts = rocksdb.Options()
opts.compaction_style = "universal"
opts.compaction_options_universal = {"min_merge_width": 3}
See here for more options on *universal style compaction*,
:py:attr:`rocksdb.Options.compaction_options_universal`
Iterate Over WriteBatch
=======================
In same cases you need to know, what operations happened on a WriteBatch.
The pyrocksdb WriteBatch supports the iterator protocol, see this example. ::
batch = rocksdb.WriteBatch()
batch.put(b"key1", b"v1")
batch.delete(b'a')
batch.merge(b'xxx', b'value')
for op, key, value in batch:
print op, key, value
# prints the following three lines
# Put key1 v1
# Delete a
# Merge xxx value

305
genindex.html Normal file
View file

@ -0,0 +1,305 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Index &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
<a href="#_"><strong>_</strong></a>
| <a href="#A"><strong>A</strong></a>
| <a href="#B"><strong>B</strong></a>
| <a href="#C"><strong>C</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#L"><strong>L</strong></a>
| <a href="#O"><strong>O</strong></a>
| <a href="#P"><strong>P</strong></a>
| <a href="#R"><strong>R</strong></a>
| <a href="#S"><strong>S</strong></a>
| <a href="#T"><strong>T</strong></a>
| <a href="#V"><strong>V</strong></a>
| <a href="#W"><strong>W</strong></a>
</div>
<h2 id="_">_</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.AdvancedColumnFamilyOptions.html#pyrocksdb.AdvancedColumnFamilyOptions.__init__">__init__() (pyrocksdb.AdvancedColumnFamilyOptions method)</a>
<ul>
<li><a href="_generate/pyrocksdb.Blob.html#pyrocksdb.Blob.__init__">(pyrocksdb.Blob method)</a>
</li>
<li><a href="_generate/pyrocksdb.ColumnFamilyDescriptor.html#pyrocksdb.ColumnFamilyDescriptor.__init__">(pyrocksdb.ColumnFamilyDescriptor method)</a>
</li>
<li><a href="_generate/pyrocksdb.ColumnFamilyHandle.html#pyrocksdb.ColumnFamilyHandle.__init__">(pyrocksdb.ColumnFamilyHandle method)</a>
</li>
<li><a href="_generate/pyrocksdb.ColumnFamilyOptions.html#pyrocksdb.ColumnFamilyOptions.__init__">(pyrocksdb.ColumnFamilyOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.DB.html#pyrocksdb.DB.__init__">(pyrocksdb.DB method)</a>
</li>
<li><a href="_generate/pyrocksdb.DBOptions.html#pyrocksdb.DBOptions.__init__">(pyrocksdb.DBOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.IteratorWrapper.html#pyrocksdb.IteratorWrapper.__init__">(pyrocksdb.IteratorWrapper method)</a>
</li>
<li><a href="_generate/pyrocksdb.LRUCacheOptions.html#pyrocksdb.LRUCacheOptions.__init__">(pyrocksdb.LRUCacheOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.Options.html#pyrocksdb.Options.__init__">(pyrocksdb.Options method)</a>
</li>
<li><a href="_generate/pyrocksdb.ReadOptions.html#pyrocksdb.ReadOptions.__init__">(pyrocksdb.ReadOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.Snapshot.html#pyrocksdb.Snapshot.__init__">(pyrocksdb.Snapshot method)</a>
</li>
<li><a href="_generate/pyrocksdb.Status.html#pyrocksdb.Status.__init__">(pyrocksdb.Status method)</a>
</li>
<li><a href="_generate/pyrocksdb.TransactionDBOptions.html#pyrocksdb.TransactionDBOptions.__init__">(pyrocksdb.TransactionDBOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.TransactionOptions.html#pyrocksdb.TransactionOptions.__init__">(pyrocksdb.TransactionOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.VectorColumnFamilyDescriptor.html#pyrocksdb.VectorColumnFamilyDescriptor.__init__">(pyrocksdb.VectorColumnFamilyDescriptor method)</a>
</li>
<li><a href="_generate/pyrocksdb.VectorColumnFamilyHandle.html#pyrocksdb.VectorColumnFamilyHandle.__init__">(pyrocksdb.VectorColumnFamilyHandle method)</a>
</li>
<li><a href="_generate/pyrocksdb.WriteBatch.html#pyrocksdb.WriteBatch.__init__">(pyrocksdb.WriteBatch method)</a>
</li>
<li><a href="_generate/pyrocksdb.WriteOptions.html#pyrocksdb.WriteOptions.__init__">(pyrocksdb.WriteOptions method)</a>
</li>
<li><a href="_generate/pyrocksdb.transaction_db.html#pyrocksdb.transaction_db.__init__">(pyrocksdb.transaction_db method)</a>
</li>
<li><a href="_generate/pyrocksdb.transaction_wrapper.html#pyrocksdb.transaction_wrapper.__init__">(pyrocksdb.transaction_wrapper method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="A">A</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.AdvancedColumnFamilyOptions.html#pyrocksdb.AdvancedColumnFamilyOptions">AdvancedColumnFamilyOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="B">B</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.Blob.html#pyrocksdb.Blob">Blob (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.ColumnFamilyDescriptor.html#pyrocksdb.ColumnFamilyDescriptor">ColumnFamilyDescriptor (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.ColumnFamilyHandle.html#pyrocksdb.ColumnFamilyHandle">ColumnFamilyHandle (class in pyrocksdb)</a>
</li>
<li><a href="_generate/pyrocksdb.ColumnFamilyOptions.html#pyrocksdb.ColumnFamilyOptions">ColumnFamilyOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.DB.html#pyrocksdb.DB">DB (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.DBOptions.html#pyrocksdb.DBOptions">DBOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.IteratorWrapper.html#pyrocksdb.IteratorWrapper">IteratorWrapper (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.LRUCacheOptions.html#pyrocksdb.LRUCacheOptions">LRUCacheOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="O">O</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.Options.html#pyrocksdb.Options">Options (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="python_rocksdb.html#module-pyrocksdb">pyrocksdb (module)</a>
</li>
</ul></td>
</tr></table>
<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.ReadOptions.html#pyrocksdb.ReadOptions">ReadOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.Snapshot.html#pyrocksdb.Snapshot">Snapshot (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.Status.html#pyrocksdb.Status">Status (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.transaction_db.html#pyrocksdb.transaction_db">transaction_db (class in pyrocksdb)</a>
</li>
<li><a href="_generate/pyrocksdb.transaction_wrapper.html#pyrocksdb.transaction_wrapper">transaction_wrapper (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.TransactionDBOptions.html#pyrocksdb.TransactionDBOptions">TransactionDBOptions (class in pyrocksdb)</a>
</li>
<li><a href="_generate/pyrocksdb.TransactionOptions.html#pyrocksdb.TransactionOptions">TransactionOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="V">V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.VectorColumnFamilyDescriptor.html#pyrocksdb.VectorColumnFamilyDescriptor">VectorColumnFamilyDescriptor (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.VectorColumnFamilyHandle.html#pyrocksdb.VectorColumnFamilyHandle">VectorColumnFamilyHandle (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
<h2 id="W">W</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.WriteBatch.html#pyrocksdb.WriteBatch">WriteBatch (class in pyrocksdb)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="_generate/pyrocksdb.WriteOptions.html#pyrocksdb.WriteOptions">WriteOptions (class in pyrocksdb)</a>
</li>
</ul></td>
</tr></table>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
</body>
</html>

198
index.html Normal file
View file

@ -0,0 +1,198 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Welcome to python-rocksdbs documentation! &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="python rocksdb API" href="python_rocksdb.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="welcome-to-python-rocksdb-s-documentation">
<h1>Welcome to python-rocksdbs documentation!<a class="headerlink" href="#welcome-to-python-rocksdb-s-documentation" title="Permalink to this headline"></a></h1>
<div class="section" id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>Python bindings to the C++ interface of <a class="reference external" href="http://rocksdb.org/">http://rocksdb.org/</a> using pybind11:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">pyrocksdb</span>
<span class="n">db</span> <span class="o">=</span> <span class="n">pyrocksdb</span><span class="o">.</span><span class="n">DB</span><span class="p">()</span>
<span class="n">opts</span> <span class="o">=</span> <span class="n">pyrocksdb</span><span class="o">.</span><span class="n">Options</span><span class="p">()</span>
<span class="c1"># for multi-thread</span>
<span class="n">opts</span><span class="o">.</span><span class="n">IncreaseParallelism</span><span class="p">()</span>
<span class="n">opts</span><span class="o">.</span><span class="n">OptimizeLevelStyleCompaction</span><span class="p">()</span>
<span class="n">opts</span><span class="o">.</span><span class="n">create_if_missing</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">opts</span><span class="p">,</span> <span class="s1">&#39;/path/to/db&#39;</span><span class="p">)</span>
<span class="k">assert</span><span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">ok</span><span class="p">())</span>
<span class="c1"># put</span>
<span class="n">opts</span> <span class="o">=</span> <span class="n">pyrocksdb</span><span class="o">.</span><span class="n">WriteOptions</span><span class="p">()</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="n">opts</span><span class="p">,</span> <span class="sa">b</span><span class="s2">&quot;key1&quot;</span><span class="p">,</span> <span class="sa">b</span><span class="s2">&quot;value1&quot;</span><span class="p">)</span>
<span class="k">assert</span> <span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">ok</span><span class="p">())</span>
<span class="c1"># get</span>
<span class="n">opts</span> <span class="o">=</span> <span class="n">pyrocksdb</span><span class="o">.</span><span class="n">ReadOptions</span><span class="p">()</span>
<span class="n">blob</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">opts</span><span class="p">,</span> <span class="sa">b</span><span class="s2">&quot;key1&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="n">blob</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> <span class="c1"># b&quot;value1&quot;</span>
<span class="nb">print</span> <span class="p">(</span><span class="n">blob</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">ok</span><span class="p">())</span> <span class="c1"># true</span>
<span class="c1">#delete</span>
<span class="n">opts</span> <span class="o">=</span> <span class="n">pyrocksdb</span><span class="o">.</span><span class="n">WriteOptions</span><span class="p">()</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">opts</span><span class="p">,</span> <span class="sa">b</span><span class="s2">&quot;key1&quot;</span><span class="p">)</span>
<span class="k">assert</span><span class="p">(</span><span class="n">s</span><span class="o">.</span><span class="n">ok</span><span class="p">())</span>
<span class="n">db</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div>
</div>
<p>Tested with python3.7</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a><ul>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installation.html#from-source">From source</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tutorial/index.html#column-family">Column Family</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorial/index.html#wrtie-batch">Wrtie Batch</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorial/index.html#iteration">Iteration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a><ul>
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-5">Version 0.5</a></li>
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-4">Version 0.4</a></li>
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-3">Version 0.3</a></li>
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-2">Version 0.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="changelog.html#version-0-1">Version 0.1</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="section" id="contributing">
<h2>Contributing<a class="headerlink" href="#contributing" title="Permalink to this headline"></a></h2>
<p>Source can be found on <a class="reference external" href="https://github.com/twmht/python-rocksdb/tree/pybind11">github</a>.
Feel free to fork and send pull-requests or create issues on the
<a class="reference external" href="https://github.com/twmht/python-rocksdb/issues">github issue tracker</a></p>
</div>
</div>
<div class="section" id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
</ul>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="#">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="#">Documentation overview</a><ul>
<li>Next: <a href="python_rocksdb.html" title="next chapter">python rocksdb API</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/index.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

124
installation.html Normal file
View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Installing &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Basic Usage of python-rocksdb" href="tutorial/index.html" />
<link rel="prev" title="pyrocksdb.Snapshot" href="_generate/pyrocksdb.Snapshot.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="installing">
<h1>Installing<a class="headerlink" href="#installing" title="Permalink to this headline"></a></h1>
<div class="section" id="from-source">
<h2>From source<a class="headerlink" href="#from-source" title="Permalink to this headline"></a></h2>
<div class="section" id="building-python-rocksdb">
<h3>Building python-rocksdb<a class="headerlink" href="#building-python-rocksdb" title="Permalink to this headline"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/twmht/python-rocksdb.git --recursive -b pybind11
<span class="nb">cd</span> python-rocksdb
python setup.py install
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Instructions how to install</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#from-source">From source</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="_generate/pyrocksdb.Snapshot.html" title="previous chapter">pyrocksdb.Snapshot</a></li>
<li>Next: <a href="tutorial/index.html" title="next chapter">Basic Usage of python-rocksdb</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/installation.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

BIN
objects.inv Normal file

Binary file not shown.

124
py-modindex.html Normal file
View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Python Module Index &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
<script type="text/javascript">
DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
</script>
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1>Python Module Index</h1>
<div class="modindex-jumpbox">
<a href="#cap-p"><strong>p</strong></a>
</div>
<table class="indextable modindextable">
<tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
<tr class="cap" id="cap-p"><td></td><td>
<strong>p</strong></td><td></td></tr>
<tr>
<td></td>
<td>
<a href="python_rocksdb.html#module-pyrocksdb"><code class="xref">pyrocksdb</code></a></td><td>
<em></em></td></tr>
</table>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="python_rocksdb.html">python rocksdb API</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
</div>
</body>
</html>

View file

@ -1,6 +0,0 @@
[build-system]
requires = [
"Cython >= 0.20",
"setuptools >= 58.3",
]
build-backend = "setuptools.build_meta"

205
python_rocksdb.html Normal file
View file

@ -0,0 +1,205 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>python rocksdb API &#8212; python-rocksdb 0.6.7 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="pyrocksdb.Blob" href="_generate/pyrocksdb.Blob.html" />
<link rel="prev" title="Welcome to python-rocksdbs documentation!" href="index.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<span class="target" id="module-pyrocksdb"></span><div class="section" id="python-rocksdb-api">
<h1>python rocksdb API<a class="headerlink" href="#python-rocksdb-api" title="Permalink to this headline"></a></h1>
<p>Most of names of APIs are identical to the official rocksdb c++ APIs, thus you can find the usage in the headers of rocksdb easily</p>
<table class="longtable docutils align-center">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.Blob.html#pyrocksdb.Blob" title="pyrocksdb.Blob"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Blob</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyHandle.html#pyrocksdb.ColumnFamilyHandle" title="pyrocksdb.ColumnFamilyHandle"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ColumnFamilyHandle</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyDescriptor.html#pyrocksdb.ColumnFamilyDescriptor" title="pyrocksdb.ColumnFamilyDescriptor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ColumnFamilyDescriptor</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyDescriptor.html#pyrocksdb.VectorColumnFamilyDescriptor" title="pyrocksdb.VectorColumnFamilyDescriptor"><code class="xref py py-obj docutils literal notranslate"><span class="pre">VectorColumnFamilyDescriptor</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyHandle.html#pyrocksdb.VectorColumnFamilyHandle" title="pyrocksdb.VectorColumnFamilyHandle"><code class="xref py py-obj docutils literal notranslate"><span class="pre">VectorColumnFamilyHandle</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.IteratorWrapper.html#pyrocksdb.IteratorWrapper" title="pyrocksdb.IteratorWrapper"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IteratorWrapper</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.DB.html#pyrocksdb.DB" title="pyrocksdb.DB"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DB</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.DBOptions.html#pyrocksdb.DBOptions" title="pyrocksdb.DBOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DBOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.Options.html#pyrocksdb.Options" title="pyrocksdb.Options"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Options</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.AdvancedColumnFamilyOptions.html#pyrocksdb.AdvancedColumnFamilyOptions" title="pyrocksdb.AdvancedColumnFamilyOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AdvancedColumnFamilyOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyOptions.html#pyrocksdb.ColumnFamilyOptions" title="pyrocksdb.ColumnFamilyOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ColumnFamilyOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.WriteOptions.html#pyrocksdb.WriteOptions" title="pyrocksdb.WriteOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">WriteOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.ReadOptions.html#pyrocksdb.ReadOptions" title="pyrocksdb.ReadOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ReadOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.TransactionDBOptions.html#pyrocksdb.TransactionDBOptions" title="pyrocksdb.TransactionDBOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TransactionDBOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.TransactionOptions.html#pyrocksdb.TransactionOptions" title="pyrocksdb.TransactionOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TransactionOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.LRUCacheOptions.html#pyrocksdb.LRUCacheOptions" title="pyrocksdb.LRUCacheOptions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">LRUCacheOptions</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.Status.html#pyrocksdb.Status" title="pyrocksdb.Status"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Status</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.WriteBatch.html#pyrocksdb.WriteBatch" title="pyrocksdb.WriteBatch"><code class="xref py py-obj docutils literal notranslate"><span class="pre">WriteBatch</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.transaction_db.html#pyrocksdb.transaction_db" title="pyrocksdb.transaction_db"><code class="xref py py-obj docutils literal notranslate"><span class="pre">transaction_db</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="_generate/pyrocksdb.transaction_wrapper.html#pyrocksdb.transaction_wrapper" title="pyrocksdb.transaction_wrapper"><code class="xref py py-obj docutils literal notranslate"><span class="pre">transaction_wrapper</span></code></a></p></td>
<td><p></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="_generate/pyrocksdb.Snapshot.html#pyrocksdb.Snapshot" title="pyrocksdb.Snapshot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Snapshot</span></code></a></p></td>
<td><p></p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">python-rocksdb</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">python rocksdb API</a><ul>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Blob.html">pyrocksdb.Blob</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyHandle.html">pyrocksdb.ColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyDescriptor.html">pyrocksdb.ColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyDescriptor.html">pyrocksdb.VectorColumnFamilyDescriptor</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.VectorColumnFamilyHandle.html">pyrocksdb.VectorColumnFamilyHandle</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.IteratorWrapper.html">pyrocksdb.IteratorWrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.DB.html">pyrocksdb.DB</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.DBOptions.html">pyrocksdb.DBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Options.html">pyrocksdb.Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.AdvancedColumnFamilyOptions.html">pyrocksdb.AdvancedColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ColumnFamilyOptions.html">pyrocksdb.ColumnFamilyOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.WriteOptions.html">pyrocksdb.WriteOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.ReadOptions.html">pyrocksdb.ReadOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.TransactionDBOptions.html">pyrocksdb.TransactionDBOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.TransactionOptions.html">pyrocksdb.TransactionOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.LRUCacheOptions.html">pyrocksdb.LRUCacheOptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Status.html">pyrocksdb.Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.WriteBatch.html">pyrocksdb.WriteBatch</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.transaction_db.html">pyrocksdb.transaction_db</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.transaction_wrapper.html">pyrocksdb.transaction_wrapper</a></li>
<li class="toctree-l2"><a class="reference internal" href="_generate/pyrocksdb.Snapshot.html">pyrocksdb.Snapshot</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Instructions how to install</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="changelog.html">Changelog</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">Welcome to python-rocksdbs documentation!</a></li>
<li>Next: <a href="_generate/pyrocksdb.Blob.html" title="next chapter">pyrocksdb.Blob</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2014, sh.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 2.0.1</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
<a href="_sources/python_rocksdb.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
from ._rocksdb import *
ROCKSDB_VERSION = '6.25.3' # 0103296f39ec3fd89b4cdda9687c63fde90eec24
__version__ = "0.8.2"

File diff suppressed because it is too large Load diff

View file

@ -1,35 +0,0 @@
from libcpp cimport bool as cpp_bool
from libcpp.string cimport string
from libcpp.vector cimport vector
from libc.stdint cimport uint32_t
from libc.stdint cimport int64_t
from libc.stdint cimport uint64_t
from .status cimport Status
from .db cimport DB
from .env cimport Env
cdef extern from "rocksdb/utilities/backupable_db.h" namespace "rocksdb":
ctypedef uint32_t BackupID
cdef cppclass BackupableDBOptions:
BackupableDBOptions(const string& backup_dir)
cdef struct BackupInfo:
BackupID backup_id
int64_t timestamp
uint64_t size
cdef cppclass BackupEngine:
Status CreateNewBackup(DB*, cpp_bool) nogil except+
Status PurgeOldBackups(uint32_t) nogil except+
Status DeleteBackup(BackupID) nogil except+
void StopBackup() nogil except+
void GetBackupInfo(vector[BackupInfo]*) nogil except+
Status RestoreDBFromBackup(BackupID, string&, string&) nogil except+
Status RestoreDBFromLatestBackup(string&, string&) nogil except+
cdef Status BackupEngine_Open "rocksdb::BackupEngine::Open"(
Env*,
BackupableDBOptions&,
BackupEngine**)

View file

@ -1,8 +0,0 @@
from .std_memory cimport shared_ptr
cdef extern from "rocksdb/cache.h" namespace "rocksdb":
cdef cppclass Cache:
pass
cdef extern shared_ptr[Cache] NewLRUCache(size_t)
cdef extern shared_ptr[Cache] NewLRUCache(size_t, int)

View file

@ -1,23 +0,0 @@
from libcpp.string cimport string
from .slice_ cimport Slice
from .logger cimport Logger
from .std_memory cimport shared_ptr
cdef extern from "rocksdb/comparator.h" namespace "rocksdb":
cdef cppclass Comparator:
const char* Name()
int Compare(const Slice&, const Slice&) const
cdef extern const Comparator* BytewiseComparator() nogil except +
ctypedef int (*compare_func)(
void*,
Logger*,
string&,
const Slice&,
const Slice&)
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+

View file

@ -1,63 +0,0 @@
#include "rocksdb/comparator.h"
#include "rocksdb/env.h"
#include <stdexcept>
using std::string;
using rocksdb::Comparator;
using rocksdb::Slice;
using rocksdb::Logger;
namespace py_rocks {
class ComparatorWrapper: public Comparator {
public:
typedef int (*compare_func)(
void*,
Logger*,
string&,
const Slice&,
const Slice&);
ComparatorWrapper(
string name,
void* compare_context,
compare_func compare_callback):
name(name),
compare_context(compare_context),
compare_callback(compare_callback)
{}
virtual int Compare(const Slice& a, const Slice& b) const {
string error_msg;
int val;
val = this->compare_callback(
this->compare_context,
this->info_log.get(),
error_msg,
a,
b);
if (error_msg.size()) {
throw std::runtime_error(error_msg.c_str());
}
return val;
}
virtual const char* Name() const {
return this->name.c_str();
}
virtual void FindShortestSeparator(string*, const Slice&) const {}
virtual void FindShortSuccessor(string*) const {}
void set_info_log(std::shared_ptr<Logger> info_log) {
this->info_log = info_log;
}
private:
string name;
void* compare_context;
compare_func compare_callback;
std::shared_ptr<Logger> info_log;
};
}

View file

@ -1,89 +0,0 @@
#include "rocksdb/filter_policy.h"
#include "rocksdb/env.h"
#include <stdexcept>
using std::string;
using rocksdb::FilterPolicy;
using rocksdb::Slice;
using rocksdb::Logger;
namespace py_rocks {
class FilterPolicyWrapper: public FilterPolicy {
public:
typedef void (*create_filter_func)(
void* ctx,
Logger*,
string&,
const Slice* keys,
int n,
string* dst);
typedef bool (*key_may_match_func)(
void* ctx,
Logger*,
string&,
const Slice& key,
const Slice& filter);
FilterPolicyWrapper(
string name,
void* ctx,
create_filter_func create_filter_callback,
key_may_match_func key_may_match_callback):
name(name),
ctx(ctx),
create_filter_callback(create_filter_callback),
key_may_match_callback(key_may_match_callback)
{}
virtual void
CreateFilter(const Slice* keys, int n, std::string* dst) const {
string error_msg;
this->create_filter_callback(
this->ctx,
this->info_log.get(),
error_msg,
keys,
n,
dst);
if (error_msg.size()) {
throw std::runtime_error(error_msg.c_str());
}
}
virtual bool
KeyMayMatch(const Slice& key, const Slice& filter) const {
string error_msg;
bool val;
val = this->key_may_match_callback(
this->ctx,
this->info_log.get(),
error_msg,
key,
filter);
if (error_msg.size()) {
throw std::runtime_error(error_msg.c_str());
}
return val;
}
virtual const char* Name() const {
return this->name.c_str();
}
void set_info_log(std::shared_ptr<Logger> info_log) {
this->info_log = info_log;
}
private:
string name;
void* ctx;
create_filter_func create_filter_callback;
key_may_match_func key_may_match_callback;
std::shared_ptr<Logger> info_log;
};
}

View file

@ -1,15 +0,0 @@
#include "rocksdb/memtablerep.h"
using rocksdb::MemTableRepFactory;
using rocksdb::VectorRepFactory;
using rocksdb::SkipListFactory;
namespace py_rocks {
MemTableRepFactory* NewVectorRepFactory(size_t count = 0) {
return new VectorRepFactory(count);
}
MemTableRepFactory* NewSkipListFactory() {
return new SkipListFactory();
}
}

Some files were not shown because too many files have changed in this diff Show more