Skip to main content

A connector that allows to interact with Reindexer. Reindexer static library or reindexer-dev package must be installed

Project description

The PyReindexer module provides a connector and its auxiliary tools for interaction with Reindexer. Reindexer static library or reindexer-dev package must be installed

pyreindexer.rx_connector

RxConnector Objects

class RxConnector(RaiserMixin)

RxConnector provides a binding to Reindexer upon two shared libraries (hereinafter - APIs): 'rawpyreindexerb.so' and 'rawpyreindexerc.so'. The first one is aimed at built-in usage. That API embeds Reindexer, so it could be used right in-place as is. The second one acts as a lightweight client which establishes a connection to Reindexer server via RPC. The APIs interfaces are completely the same.

Arguments:

    dsn (string): The connection string which contains a protocol
        Examples: 'builtin:///tmp/pyrx', 'cproto://127.0.0.1:6534/pyrx'

    cproto options:
         fetch_amount (int): The number of items that will be fetched by one operation
         reconnect_attempts (int): Number of reconnection attempts when connection is lost
         net_timeout (`datetime.timedelta`): Connection and database login timeout value [milliseconds]
         enable_compression (bool): Flag enable/disable traffic compression
         start_special_thread (bool): Determines whether to request a special thread of execution
            on the server for this connection
         client_name (string): Proper name of the application (as a client for Reindexer-server)
         sync_rxcoro_count (int): Client concurrency per connection [1..10'000], default 10

    built-in options:
        max_replication_updates_size (int): Max pended replication updates size in bytes
        allocator_cache_limit (int): Recommended maximum free cache size of tcmalloc memory allocator in bytes
        allocator_cache_part (float): Recommended maximum free cache size of tcmalloc memory allocator in
            relation to total Reindexer allocated memory size, in units

Attributes:

api (module): An API module loaded dynamically for Reindexer calls
rx (int): A memory pointer to the Reindexer instance
err_code (int): The API error code
err_msg (string): The API error message

RxConnector.close

def close() -> None

Closes the API instance and frees Reindexer resources

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet

RxConnector.namespace_open

def namespace_open(
    namespace: str, timeout: timedelta = timedelta(milliseconds=0)) -> None

Opens a namespace specified or creates a namespace if it does not exist

Arguments:

namespace (string): The name of the namespace
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.namespace_close

def namespace_close(
    namespace: str, timeout: timedelta = timedelta(milliseconds=0)) -> None

Closes the specified namespace

Arguments:

namespace (string): The name of the namespace
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.namespace_drop

def namespace_drop(
    namespace: str, timeout: timedelta = timedelta(milliseconds=0)) -> None

Drops the specified namespace

Arguments:

namespace (string): The name of the namespace
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

Exception: Raises with an error message when Reindexer instance is not initialized yet
Exception: Raises with an error message of API return on non-zero error code

RxConnector.namespaces_enum

def namespaces_enum(
    enum_not_opened: bool = False,
    timeout: timedelta = timedelta(milliseconds=0)
) -> List[Dict[str, str]]

Gets a list of namespaces available

Arguments:

enum_not_opened (bool, optional): An enumeration mode flag. If it is
    set then closed namespaces are in result list too. Defaults to False
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`list` of :obj:`dict`): A list of dictionaries which describe each namespace

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.index_add

def index_add(
    namespace: str,
    index_def: Dict,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Adds an index to the specified namespace

Arguments:

namespace (string): The name of the namespace
index_def (dict): A dictionary of index definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.index_update

def index_update(
    namespace: str,
    index_def: Dict,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Updates an index in the specified namespace

Arguments:

namespace (string): The name of the namespace
index_def (dict): A dictionary of index definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.index_drop

def index_drop(
    namespace: str,
    index_name: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Drops an index from the specified namespace

Arguments:

namespace (string): The name of the namespace
index_name (string): A name of an index
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.item_insert

def item_insert(
    namespace: str,
    item_def: Dict,
    precepts: List[str] = None,
    timeout: timedelta = timedelta(milliseconds=0)
) -> None

Inserts an item with its precepts into the specified namespace

Arguments:

namespace (string): The name of the namespace
item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.item_update

def item_update(
    namespace: str,
    item_def: Dict,
    precepts: List[str] = None,
    timeout: timedelta = timedelta(milliseconds=0)
) -> None

Updates an item with its precepts in the specified namespace

Arguments:

namespace (string): The name of the namespace
item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.item_upsert

def item_upsert(
    namespace: str,
    item_def: Dict,
    precepts: List[str] = None,
    timeout: timedelta = timedelta(milliseconds=0)
) -> None

Updates an item with its precepts in the specified namespace. Creates the item if it does not exist

Arguments:

namespace (string): The name of the namespace
item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.item_delete

def item_delete(
    namespace: str,
    item_def: Dict,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Deletes an item from the namespace specified

Arguments:

namespace (string): The name of the namespace
item_def (dict): A dictionary of item definition
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.meta_put

def meta_put(
    namespace: str,
    key: str,
    value: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Puts metadata to a storage of Reindexer by key

Arguments:

namespace (string): The name of the namespace
key (string): A key in a storage of Reindexer for metadata keeping
value (string): A metadata for storage
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.meta_get

def meta_get(namespace: str,
             key: str,
             timeout: timedelta = timedelta(milliseconds=0)) -> str

Gets metadata from a storage of Reindexer by key specified

Arguments:

namespace (string): The name of the namespace
key (string): A key in a storage of Reindexer where metadata is kept
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

string: A metadata value

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.meta_delete

def meta_delete(
    namespace: str, key: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> None

Deletes metadata from a storage of Reindexer by key specified

Arguments:

namespace (string): The name of the namespace
key (string): A key in a storage of Reindexer where metadata is kept
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.meta_enum

def meta_enum(
    namespace: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> List[str]

Gets a list of metadata keys from a storage of Reindexer

Arguments:

namespace (string): The name of the namespace
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`list` of :obj:`str`): A list of all metadata keys

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.exec_sql

def exec_sql(
    query: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> QueryResults

Executes an SQL query and returns query results

Arguments:

query (string): An SQL query
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`QueryResults`): A QueryResults iterator

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.new_transaction

def new_transaction(
    namespace: str,
    timeout: timedelta = timedelta(milliseconds=0)) -> Transaction

Starts a new transaction and return the transaction object to processing. Warning: once a timeout is set, it will apply to all subsequent steps in the transaction

Arguments:

namespace (string): The name of the namespace
timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`Transaction`): A new transaction

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet
ApiError: Raises with an error message of API return on non-zero error code

RxConnector.new_query

def new_query(namespace: str) -> Query

Creates a new query and return the query object to processing

Arguments:

namespace (string): The name of the namespace

Returns:

(:obj:`Query`): A new query

Raises:

ConnectionError: Raises with an error message when Reindexer instance is not initialized yet

pyreindexer.query_results

QueryResults Objects

class QueryResults()

QueryResults is a disposable iterator of Reindexer results for such queries as SELECT etc. When the results are fetched the iterator closes and frees a memory of results buffer of Reindexer

Attributes:

api (module): An API module for Reindexer calls
err_code (int): The API error code
err_msg (string): The API error message
qres_wrapper_ptr (int): A memory pointer to Reindexer iterator object
qres_iter_count (int): A count of results for iterations
pos (int): The current result position in iterator

QueryResults.status

def status() -> None

Check status

Raises:

ApiError: Raises with an error message of API return on non-zero error code

QueryResults.count

def count() -> int

Returns a count of results for iterations

Returns

int: A count of results

QueryResults.total_count

def total_count() -> int

Returns a total or cached count of results

Returns

int: A total or cached count of results

QueryResults.get_agg_results

def get_agg_results() -> dict

Returns aggregation results for the current query

Returns

(:obj:`dict`): Dictionary with all results for the current query

Raises:

ApiError: Raises with an error message of API return on non-zero error code

QueryResults.get_explain_results

def get_explain_results() -> str

Returns explain results for the current query

Returns

(string): Formatted string with explain of results for the current query

Raises:

ApiError: Raises with an error message of API return on non-zero error code

pyreindexer.transaction

Transaction Objects

class Transaction()

An object representing the context of a Reindexer transaction

Attributes:

api (module): An API module for Reindexer calls
transaction_wrapper_ptr (int): A memory pointer to Reindexer transaction object
err_code (int): The API error code
err_msg (string): The API error message

Transaction.insert

def insert(item_def: Dict, precepts: List[str] = None) -> None

Inserts an item with its precepts to the transaction Warning: the timeout set when the transaction was created is used

Arguments:

item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.update

def update(item_def: Dict, precepts: List[str] = None) -> None

Updates an item with its precepts to the transaction Warning: the timeout set when the transaction was created is used

Arguments:

item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.update_query

def update_query(query: Query) -> None

Updates items with the transaction Read-committed isolation is available for read operations. Changes made in active transaction is invisible to current and another transactions.

Arguments:

query (:obj:`Query`): A query object to modify

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.upsert

def upsert(item_def: Dict, precepts: List[str] = None) -> None

Updates an item with its precepts to the transaction. Creates the item if it does not exist Warning: the timeout set when the transaction was created is used

Arguments:

item_def (dict): A dictionary of item definition
precepts (:obj:`list` of :obj:`str`): A dictionary of index definition

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.delete

def delete(item_def: Dict) -> None

Deletes an item from the transaction Warning: the timeout set when the transaction was created is used

Arguments:

item_def (dict): A dictionary of item definition

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.delete_query

def delete_query(query: Query)

Deletes items with the transaction Read-committed isolation is available for read operations. Changes made in active transaction is invisible to current and another transactions.

Arguments:

query (:obj:`Query`): A query object to modify

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.commit

def commit(timeout: timedelta = timedelta(milliseconds=0)) -> None

Applies changes

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.commit_with_count

def commit_with_count(timeout: timedelta = timedelta(milliseconds=0)) -> int

Applies changes and return the number of count of changed items

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

Transaction.rollback

def rollback(timeout: timedelta = timedelta(milliseconds=0)) -> None

Rollbacks changes

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Raises:

TransactionError: Raises with an error message of API return if Transaction is over
ApiError: Raises with an error message of API return on non-zero error code

pyreindexer.point

Point Objects

class Point()

An object representing the context of a Reindexer 2D point

Attributes:

x (float): x coordinate of the point
y (float): y coordinate of the point

pyreindexer.query

Query Objects

class Query()

An object representing the context of a Reindexer query

Attributes:

api (module): An API module for Reindexer calls
query_wrapper_ptr (int): A memory pointer to Reindexer query object
err_code (int): The API error code
err_msg (string): The API error message
root (:object: Optional[`Query`]): The root query of the Reindexer query
join_queries (list[:object:`Query`]): The list of join Reindexer query objects
merged_queries (list[:object:`Query`]): The list of merged Reindexer query objects

Query.where

def where(
        index: str,
        condition: CondType,
        keys: Union[simple_types, tuple[list[simple_types],
                                        ...]] = None) -> Query

Adds where condition to DB query with args

Arguments:

index (string): Field name used in condition clause
condition (:enum:`CondType`): Type of condition
keys (union[simple_types, (list[simple_types], ...)]):
    Value of index to be compared with. For composite indexes keys must be list,
    with value of each sub-index

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.where_query

def where_query(
        sub_query: Query,
        condition: CondType,
        keys: Union[simple_types, tuple[list[simple_types],
                                        ...]] = None) -> Query

Adds sub-query where condition to DB query with args

Arguments:

sub_query (:obj:`Query`): Field name used in condition clause
condition (:enum:`CondType`): Type of condition
keys (union[simple_types, (list[simple_types], ...)]):
    Value of index to be compared with. For composite indexes keys must be list,
    with value of each sub-index

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.where_subquery

def where_subquery(index: str, condition: CondType, sub_query: Query) -> Query

Adds sub-query where condition to DB query

Arguments:

index (string): Field name used in condition clause
condition (:enum:`CondType`): Type of condition
sub_query (:obj:`Query`): Field name used in condition clause

Returns:

(:obj:`Query`): Query object for further customizations

Query.where_composite

def where_composite(index: str, condition: CondType,
                    keys: tuple[list[simple_types], ...]) -> Query

Adds where condition to DB query with interface args for composite indexes

Arguments:

index (string): Field name used in condition clause
condition (:enum:`CondType`): Type of condition
keys (list[simple_types], ...): Values of composite index to be compared with (value of each sub-index).
    Supported variants:
        ([1, "test1"], [2, "test2"])
        [[1, "test1"], [2, "test2"]])
        ([1, "testval1"], )
        [[1, "testval1"]]
        (1, "testval1")

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.where_uuid

def where_uuid(index: str, condition: CondType, *uuids: UUID) -> Query

Adds where condition to DB query with UUID. index MUST be declared as uuid-string index in this case

Arguments:

index (string): Field name used in condition clause
condition (:enum:`CondType`): Type of condition
uuids (*:obj:`UUID`): Value of index to be compared with. For composite indexes uuids must be list,
    with value of each sub-index

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.where_between_fields

def where_between_fields(first_field: str, condition: CondType,
                         second_field: str) -> Query

Adds comparing two fields where condition to DB query

Arguments:

first_field (string): First field name used in condition clause
condition (:enum:`CondType`): Type of condition
second_field (string): Second field name used in condition clause

Returns:

(:obj:`Query`): Query object for further customizations

Query.where_knn

def where_knn(
    index: str, vec: List[float],
    param: Union[IndexSearchParamBruteForce | IndexSearchParamHnsw | IndexSearchParamIvf]
) -> Query

Adds where condition to DB query with float_vector as args. index MUST be declared as float_vector index in this case

Arguments:

index (string): Field name used in condition clause (only float_vector)
vec (list[float]): KNN value of index to be compared with
param (:obj:`union[IndexSearchParamBruteForce|IndexSearchParamHnsw|IndexSearchParamIvf]`): KNN search parameters

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

QueryError: Raises with an error message if no vec are specified
QueryError: Raises with an error message if no param are specified or have an invalid value
ApiError: Raises with an error message of API return on non-zero error code

Query.where_knn_string

def where_knn_string(
    index: str, value: str,
    param: Union[IndexSearchParamBruteForce | IndexSearchParamHnsw | IndexSearchParamIvf]
) -> Query

Adds where condition to DB query with string as args. index MUST be declared as float_vector index in this case. WARNING: Only relevant if automatic embedding is configured for this float_vector index

Arguments:

index (string): Field name used in condition clause (only float_vector)
value (string): value to be generated using automatic embedding of KNN index value to be compared to
param (:obj:`union[IndexSearchParamBruteForce|IndexSearchParamHnsw|IndexSearchParamIvf]`): KNN search parameters

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

QueryError: Raises with an error message if no value are specified
QueryError: Raises with an error message if no param are specified or have an invalid value
ApiError: Raises with an error message of API return on non-zero error code

Query.open_bracket

def open_bracket() -> Query

Opens bracket for where condition to DB query

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.close_bracket

def close_bracket() -> Query

Closes bracket for where condition to DB query

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.match

def match(index: str, *keys: str) -> Query

Adds string EQ-condition to DB query with string args

Arguments:

index (string): Field name used in condition clause
keys (*string): Value of index to be compared with. For composite indexes keys must be list,
    with value of each sub-index

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.dwithin

def dwithin(index: str, point: Point, distance: float) -> Query

Adds DWithin condition to DB query

Arguments:

index (string): Field name used in condition clause
point (:obj:`Point`): Point object used in condition clause
distance (float): Distance in meters between point

Returns:

(:obj:`Query`): Query object for further customizations

Query.distinct

def distinct(index: str) -> Query

Performs distinct for a certain index. Return only items with uniq value of field

Arguments:

index (string): Field name for distinct operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.aggregate_sum

def aggregate_sum(index: str) -> Query

Performs a summation of values for a specified index

Arguments:

index (string): Field name for sum operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.aggregate_avg

def aggregate_avg(index: str) -> Query

Finds for the average at the specified index

Arguments:

index (string): Field name for sum operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.aggregate_min

def aggregate_min(index: str) -> Query

Finds for the minimum at the specified index

Arguments:

index (string): Field name for sum operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.aggregate_max

def aggregate_max(index: str) -> Query

Finds for the maximum at the specified index

Arguments:

index (string): Field name for sum operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.aggregate_facet

def aggregate_facet(*fields: str) -> Query._AggregateFacet

Gets fields facet value. Applicable to multiple data fields and the result of that could be sorted by any data column or count and cut off by offset and limit. In order to support this functionality this method returns AggregationFacetRequest which has methods sort, limit and offset

Arguments:

fields (*string): Fields any data column name or `count`, fields should not be empty

Returns:

(:obj:`_AggregateFacet`): Request object for further customizations

Query.sort

def sort(
    index: str,
    desc: bool = False,
    forced_sort_values: Union[simple_types, tuple[list[simple_types],
                                                  ...]] = None
) -> Query

Applies sort order to return from query items. If forced_sort_values argument specified, then items equal to values, if found will be placed in the top positions. Forced sort is support for the first sorting field only

Arguments:

index (string): The index name
desc (bool): Sort in descending order
forced_sort_values (union[simple_types, (list[simple_types], ...)]):
    Value of index to match. For composite indexes keys must be list, with value of each sub-index

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.sort_stpoint_distance

def sort_stpoint_distance(index: str, point: Point, desc: bool) -> Query

Applies geometry sort order to return from query items. Wrapper for geometry sorting by shortest distance between geometry field and point (ST_Distance)

Arguments:

index (string): The index name
point (:obj:`Point`): Point object used in sorting operation
desc (bool): Sort in descending order

Returns:

(:obj:`Query`): Query object for further customizations

Query.sort_stfield_distance

def sort_stfield_distance(first_field: str, second_field: str,
                          desc: bool) -> Query

Applies geometry sort order to return from query items. Wrapper for geometry sorting by shortest distance between 2 geometry fields (ST_Distance)

Arguments:

first_field (string): First field name used in condition
second_field (string): Second field name used in condition
desc (bool): Sort in descending order

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.op_and

def op_and() -> Query

Next condition will be added with AND. This is the default operation for WHERE statement. Do not have to be called explicitly in user's code. Used in DSL conversion

Returns:

(:obj:`Query`): Query object for further customizations

Query.op_or

def op_or() -> Query

Next condition will be added with OR. Implements short-circuiting: if the previous condition is successful the next will not be evaluated, but except Join conditions

Returns:

(:obj:`Query`): Query object for further customizations

Query.op_not

def op_not() -> Query

Next condition will be added with NOT AND. Implements short-circuiting: if the previous condition is failed the next will not be evaluated

Returns:

(:obj:`Query`): Query object for further customizations

Query.request_total

def request_total() -> Query

Requests total items calculation

Arguments:

total_name (string, optional): Name to be requested

Returns:

(:obj:`Query`): Query object for further customizations

Query.cached_total

def cached_total() -> Query

Requests cached total items calculation

Arguments:

total_name (string, optional): Name to be requested

Returns:

(:obj:`Query`): Query object for further customizations

Query.limit

def limit(limit_items: int) -> Query

Sets a limit (count) of returned items. Analog to sql LIMIT rowsNumber

Arguments:

limit_items (int): Number of rows to get from result set

Returns:

(:obj:`Query`): Query object for further customizations

Query.offset

def offset(start_offset: int) -> Query

Sets the number of the first selected row from result query

Arguments:

limit_items (int): Index of the first row to get from result set

Returns:

(:obj:`Query`): Query object for further customizations

Query.debug

def debug(level: LogLevel) -> Query

Changes debug log level on server

Arguments:

level (:enum:`LogLevel`): Debug log level on server

Returns:

(:obj:`Query`): Query object for further customizations

Query.strict

def strict(mode: StrictMode) -> Query

Changes strict mode

Arguments:

mode (:enum:`StrictMode`): Strict mode

Returns:

(:obj:`Query`): Query object for further customizations

Query.explain

def explain() -> Query

Enables explain query

Returns:

(:obj:`Query`): Query object for further customizations

Query.with_rank

def with_rank() -> Query

Outputs fulltext/float_vector rank. Allowed only with fulltext and KNN query

Returns:

(:obj:`Query`): Query object for further customizations

Query.execute

def execute(timeout: timedelta = timedelta(milliseconds=0)) -> QueryResults

Executes a select query

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`QueryResults`): A QueryResults iterator

Raises:

ApiError: Raises with an error message when query is in an invalid state
ApiError: Raises with an error message of API return on non-zero error code

Query.delete

def delete(timeout: timedelta = timedelta(milliseconds=0)) -> int

Executes a query, and delete items, matches query

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(int): Number of deleted elements

Raises:

QueryError: Raises with an error message when query is in an invalid state
ApiError: Raises with an error message of API return on non-zero error code

Query.set_object

def set_object(field: str, values: list[simple_types]) -> Query

Adds an update query to an object field for an update query

Arguments:

field (string): Field name
values (list[simple_types]): List of values to add

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

QueryError: Raises with an error message if no values are specified
ApiError: Raises with an error message of API return on non-zero error code

Query.set

def set(field: str, values: list[simple_types]) -> Query

Adds a field update request to the update request

Arguments:

field (string): Field name
values (list[simple_types]): List of values to add

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.drop

def drop(index: str) -> Query

Drops a value for a field

Arguments:

index (string): Field name for drop operation

Returns:

(:obj:`Query`): Query object for further customizations

Query.expression

def expression(field: str, value: str) -> Query

Updates indexed field by arithmetical expression

Arguments:

field (string): Field name
value (string): New value expression for field

Returns:

(:obj:`Query`): Query object for further customizations

Query.update

def update(timeout: timedelta = timedelta(milliseconds=0)) -> QueryResults

Executes update query, and update fields in items, which matches query

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`QueryResults`): A QueryResults iterator

Raises:

QueryError: Raises with an error message when query is in an invalid state
ApiError: Raises with an error message of API return on non-zero error code

Query.must_execute

def must_execute(timeout: timedelta = timedelta(
    milliseconds=0)) -> QueryResults

Executes a query, and update fields in items, which matches query, with status check

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:obj:`QueryResults`): A QueryResults iterator

Raises:

ApiError: Raises with an error message when query is in an invalid state
ApiError: Raises with an error message of API return on non-zero error code

Query.get

def get(timeout: timedelta = timedelta(milliseconds=0)) -> (str, bool)

Executes a query, and return 1 JSON item

Arguments:

timeout (`datetime.timedelta`): Optional timeout for performing a server-side operation.
    Minimum is 1 millisecond; if set to a lower value, it corresponds to disabling the timeout.
    A value of 0 disables the timeout (default value)

Returns:

(:tuple:string,bool): 1st string item and found flag

Raises:

ApiError: Raises with an error message when query is in an invalid state
ApiError: Raises with an error message of API return on non-zero error code

Query.inner_join

def inner_join(query: Query, field: str) -> Query

Joins 2 queries. Items from the 1-st query are filtered by and expanded with the data from the 2-nd query

Arguments:

query (:obj:`Query`): Query object to left join
field (string): Joined field name. As unique identifier for the join between this query and `join_query`.
    Parameter in order for InnerJoin to work: namespace of `query` contains `field` as one of its fields
    marked as `joined`

Returns:

(:obj:`Query`): Query object for further customizations

Query.join

def join(query: Query, field: str) -> Query

Join is an alias for LeftJoin. Joins 2 queries. Items from this query are expanded with the data from the query

Arguments:

query (:obj:`Query`): Query object to left join
field (string): Joined field name. As unique identifier for the join between this query and `join_query`

Returns:

(:obj:`Query`): Query object for further customizations

Query.left_join

def left_join(join_query: Query, field: str) -> Query

Joins 2 queries. Items from this query are expanded with the data from the join_query. One of the conditions below must hold for field parameter in order for LeftJoin to work: namespace of join_query contains field as one of its fields marked as joined

Arguments:

query (:obj:`Query`): Query object to left join
field (string): Joined field name. As unique identifier for the join between this query and `join_query`

Returns:

(:obj:`Query`): Query object for further customizations

Query.merge

def merge(query: Query) -> Query

Merges queries of the same type

Arguments:

query (:obj:`Query`): Query object to merge

Returns:

(:obj:`Query`): Query object for further customizations

Query.on

def on(index: str, condition: CondType, join_index: str) -> Query

On specifies join condition

Arguments:

index (string): Field name from `Query` namespace should be used during join
condition (:enum:`CondType`): Type of condition, specifies how `Query` will be joined with the latest join query issued on `Query` (e.g. `EQ`/`GT`/`SET`/...)
join_index (string): Index-field name from namespace for the latest join query issued on `Query` should be used during join

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

QueryError: Raises with an error message when query is in an invalid state

Query.select_fields

def select_fields(*fields: str) -> Query

Sets list of columns in this namespace to be finally selected. The columns should be specified in the same case as the jsonpaths corresponding to them. Non-existent fields and fields in the wrong case are ignored. If there are no fields in this list that meet these conditions, then the filter works as "*"

Arguments:

fields (*string): List of columns to be selected

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.functions

def functions(*functions: str) -> Query

Adds sql-functions to query

Arguments:

functions (*string): Functions declaration

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

Query.equal_position

def equal_position(*equal_position: str) -> Query

Adds equal position fields to arrays queries

Arguments:

equal_poses (*string): Equal position fields to arrays queries

Returns:

(:obj:`Query`): Query object for further customizations

Raises:

ApiError: Raises with an error message of API return on non-zero error code

pyreindexer.index_search_params

IndexSearchParamBruteForce Objects

class IndexSearchParamBruteForce()

Index search param for brute force index. Equal to basic parameters

Attributes:

k (int): Expected size of KNN index results. Should not be less than 1
radius (float): In addition to the parameter `k`, the query results can also be filtered by a `rank` -
  value using the parameter, witch called `radius`. It's named so because, under the `L2`-metric,
  it restricts vectors from query result to a sphere of the specified radius. [More about `radius`]
  (https://github.com/Restream/reindexer/blob/master/float_vector.md)

IndexSearchParamHnsw Objects

class IndexSearchParamHnsw()

Index search param for HNSW index.

Attributes:

k (int): Expected size of KNN index results. Should not be less than 1
ef (int): Size of nearest neighbor buffer that will be filled during fetching. Should not be less than 'k',
good story when `ef` ~= 1.5 * `k`
radius (float): In addition to the parameter `k`, the query results can also be filtered by a `rank` -
  value using the parameter, witch called `radius`. It's named so because, under the `L2`-metric,
  it restricts vectors from query result to a sphere of the specified radius. [More about `radius`]
  (https://github.com/Restream/reindexer/blob/master/float_vector.md)

IndexSearchParamIvf Objects

class IndexSearchParamIvf()

Index search param for IVF index.

Attributes:

k (int): Expected size of KNN index results. Should not be less than 1
nprobe (int): Number of centroids that will be scanned in where. Should not be less than 1
radius (float): In addition to the parameter `k`, the query results can also be filtered by a `rank` -
  value using the parameter, witch called `radius`. It's named so because, under the `L2`-metric,
  it restricts vectors from query result to a sphere of the specified radius. [More about `radius`]
  (https://github.com/Restream/reindexer/blob/master/float_vector.md)

pyreindexer.index_definition

IndexDefinition Objects

class IndexDefinition(dict)

IndexDefinition is a dictionary subclass which allows to construct and manage indexes more efficiently. NOT IMPLEMENTED YET. USE FIELDS DESCRIPTION ONLY.

Arguments:

name (str): An index name.
json_paths (:obj:`list` of :obj:`str`): A name for mapping a value to a json field.
field_type (str): A type of field. Possible values are: `int`, `int64`, `double`, `string`, `bool`,
`composite`, `float_vector`.
index_type (str): An index type. Possible values are: `hash`, `tree`, `text`, `-`, `hnsw`, `vec_bf`, `ivf`.
is_pk (bool): True if a field is a primary key.
is_array (bool): True if an index is an array.
is_dense (bool): True if an index is dense. Reduce the index size. Saves 8 bytes per unique key value for 'hash'
    and 'tree' index types. For '-' index type saves 4-8 bytes per each element. Useful for indexes with
    high selectivity, but for tree and hash indexes with low selectivity can seriously decrease update
    performance.
is_no_column (bool): True if allows to disable column subindex. Reduces the index size.
    Allows to save ~(`stored_type_size` * `namespace_items_count`) bytes, where `stored_type_size` is the size
    of the type stored in the index, and `namespace_items_count` is the number of items in the namespace.
    May reduce performance.
is_sparse (bool): True if a value of an index may be not presented.
collate_mode (str): Sets an order of values by collate mode. Possible values are:
    `none`, `ascii`, `utf8`, `numeric`, `custom`.
sort_order_letters (str): Order for a sort sequence for a custom collate mode.
config (dict): A config for a fulltext and float_vector engine.
[More about `fulltext`](https://github.com/Restream/reindexer/blob/master/fulltext.md) or
[More about `float_vector`](https://github.com/Restream/reindexer/blob/master/float_vector.md).

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyreindexer-0.5.120000.tar.gz (89.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyreindexer-0.5.120000-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-pp311-pypy311_pp73-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.120000-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-pp310-pypy310_pp73-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.120000-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-pp39-pypy39_pp73-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.120000-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-pp38-pypy38_pp73-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.120000-cp313-cp313-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp313-cp313-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyreindexer-0.5.120000-cp312-cp312-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp312-cp312-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyreindexer-0.5.120000-cp311-cp311-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp311-cp311-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyreindexer-0.5.120000-cp310-cp310-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp310-cp310-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pyreindexer-0.5.120000-cp39-cp39-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp39-cp39-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

pyreindexer-0.5.120000-cp38-cp38-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.120000-cp38-cp38-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.8macOS 15.0+ ARM64

File details

Details for the file pyreindexer-0.5.120000.tar.gz.

File metadata

  • Download URL: pyreindexer-0.5.120000.tar.gz
  • Upload date:
  • Size: 89.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyreindexer-0.5.120000.tar.gz
Algorithm Hash digest
SHA256 c1ab69e4c2180073bdd761ea41c6cc5b0ecdf1ed58b9a55f686d41527655231d
MD5 f7f485c7b79d0c97c7d06106bfc1b14b
BLAKE2b-256 1371873a5bc0109d3d51ec39ded9a93f62d9189cc8116f6d61b0fc2948dd61af

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be655ace0223000ed142a223bf1fe21b2145112ddf8bc73b78b6e0abb0af9a99
MD5 6597dd5f0215ab78992cc4c7125798a0
BLAKE2b-256 df43b64d24e8d31943b363fe1e3ad5be44b50ad270022e56867bf247eff644e5

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp311-pypy311_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp311-pypy311_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8af3c2ac4a5fe7d94c3d732e889419334580dfe2b93440fe5f26d45ed0905fe1
MD5 d8fe96cf6a134043145ab741f8ee090b
BLAKE2b-256 ed610fe3b3bee187c46dfc42c4aef1094eb1a2e121144cd3a10f9e0a7d1c0ea9

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b431feb100f676292ab6a3b52d65192f22c168136d3f911693f491d0206d4de4
MD5 a5e49c2246f330b3e04a9ffc70550695
BLAKE2b-256 1d65b2341b4c6d0637a2f1756261265eb217890f6c9807dd4bd950787c78e9b4

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp310-pypy310_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp310-pypy310_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 926792d76691e0cdfc529ac9a8b9519199e48a97133ae4845fb4e753c210fe8e
MD5 8e32b373755b65b505818d74b22a08db
BLAKE2b-256 eb53bb89e1254129e974ff219b4689ef59d93a992e2fbb9440d690db99a729d0

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b249f4744d11f3b1eb0515db75669f78cbe50027213457566f635ecaf3ea3ad5
MD5 0effb0c6fdd78e61ed042792ac0e3aa4
BLAKE2b-256 68421e78a602faacfff67fc33a7fe04d2a37d3b52c550713569cbfd73e7644e4

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp39-pypy39_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp39-pypy39_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c729da5bc1cc5d39d0269635c9738767f53dc191b5a58ed5f6600db92008ece9
MD5 9e7d7451b511f54127aa2f585afc2212
BLAKE2b-256 895807b5d8e06daa8c04a10024b8f406bec801a86c880e06965d09aa5c522f28

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3ea2e1a738c887c1f88aeca20eaaecc85528164d341015ee49efb8c9e421f078
MD5 7d71ed29f2d409c794f59b4951e08a21
BLAKE2b-256 1fb6287783b2ec157aa8c6eb6e827ad4554a8e1d98eb8f942f3b3480a9191149

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-pp38-pypy38_pp73-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-pp38-pypy38_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 64f6ddb3c353dfcd883616bec61d87065426bbd1986f5e3929f0c8c3b576627f
MD5 5415a26e121ffe0ce0dd9da955ab17e6
BLAKE2b-256 81b7c7bea0b09216a2e8f697e6c2ea22e0c282e28c421df6cf5b58ef3927e2e7

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e23ce332e25ca5b40e0907b6448deb9ae9dd14ca49f96334c5edbdc732bef5dd
MD5 7a6a0cb40bdda1a3457019f9a587e9c0
BLAKE2b-256 9b6b92a5cfb127c9f7ed37f8d720a1ea5c2421a0a609a631e90e626858f105f0

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1190d8c65d80ec0eeec8b04bd5a10362fbedd7b5998848c59caa6c2acc2604a3
MD5 a58248661941c7c6383e8bf543d74970
BLAKE2b-256 5dce4c22e8ae8fb8ae1bc9f8ac4e3037d24f3a13ac58901fa4510f9cf3e246fa

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83ff8ea1bb2c30c0a3d63ddd5d9da11b570639006d6d279c2296d2df5a764ff5
MD5 cbf0b2b2344bf2ea8e0333c933a88652
BLAKE2b-256 c928f6b4b9602248e74ccadc304150cefa842e0e1bc15175d021d99547af6ba9

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3d2818ee062c6a8da25b2aecb7fed02d7385dcd99ed6430d2c38a70c14427a78
MD5 ce19388f706e81d0b527ecda7d9f17bb
BLAKE2b-256 f9fff9092a702a94ea463b23257bc8723d9d7347f1275f435e47ef907a627d22

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1818ae7671ecd4d23d206e2cf9439d3bfcf082bb1f01056674d68c8039215a0
MD5 e866e33dce95f2da00c7ecb3b9ac6858
BLAKE2b-256 d8717999d0c7662f7cbc2d712c87db67b97c1172968c9fb7f1901c55cd4911f1

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e5a5e12ded88f28f49c1b94218387deb53880744674dca8124681289098f1118
MD5 ef957d4e3a07291ae6a3ba919fc64027
BLAKE2b-256 1f89a5ff8fa3adcf6c69da0ddebc272364acd3752a6c43f27114c9bb3ddbfc4f

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2953ec79e1e66b9a46c84193eb426617bec44ab60732f1318395ab2f5ce2679d
MD5 3ea2a47c874450270c4f6cdfed4294c2
BLAKE2b-256 bc9910ca8c542526400d4c338c405809cb0a2ad56653eb08c32529bc10d6871b

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b514969eb48281ac28bd94561217838ded64d87dae097c6335c4a52e383a5c95
MD5 43e4faa08f3b8b1616e5ef78c8fbc4cf
BLAKE2b-256 7cc7fc85b835de1444ccb7b0a0bcd64f0c167c736430adcad0c5adbd2e31b6db

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 18b36d677ba44ee057e7d6ed9c3712af2baa356b3805d2b9b42577bfedb1b28e
MD5 40bcb35c75d24bbc8bc45536e2caf925
BLAKE2b-256 ad948b89dfdfd10a5682468ab6c93dc763474bcfdd1ad42316d5bab5701ee3eb

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 08991c9b9006729143329f65b23a1919e3fc38694b0473199c441a920df96e08
MD5 8d383908355b4dabca9dc36d81ff847d
BLAKE2b-256 63c33d32eaf3ffc92e6488261ac829873a76519fb491244e12a65de786b86cca

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c17a6e4ba3833a4e2818048e674a7fce4d0a68e34072a00be4fda9de2e975a81
MD5 5f2dd792ffc1b99a5607a1285eff990a
BLAKE2b-256 2142bf70bbfff5ed64de7dd6c6f91a888c757701d46adefa46c2a0d3cd4f230f

See more details on using hashes here.

File details

Details for the file pyreindexer-0.5.120000-cp38-cp38-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyreindexer-0.5.120000-cp38-cp38-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2aa3fcaa74c00384039a1b3fa0f36b48544e4d91bb985d4cbd9c65b76dc246dc
MD5 cad09956a26893713a3849e2254691bd
BLAKE2b-256 cdfbbe2e3b19485b1a2427ba88a81d4963b8e15a8b226736326fa387104f7503

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page