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.120002.tar.gz (90.3 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.120002-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (24.1 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

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

Uploaded PyPymacOS 15.0+ ARM64

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

Uploaded PyPymanylinux: glibc 2.28+ x86-64

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

Uploaded PyPymacOS 15.0+ ARM64

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

Uploaded PyPymanylinux: glibc 2.28+ x86-64

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

Uploaded PyPymacOS 15.0+ ARM64

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

Uploaded PyPymanylinux: glibc 2.28+ x86-64

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

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-cp313-cp313-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-cp312-cp312-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-cp311-cp311-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-cp310-cp310-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-cp39-cp39-macosx_15_0_arm64.whl (17.8 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

pyreindexer-0.5.120002-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.120002-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.120002.tar.gz.

File metadata

  • Download URL: pyreindexer-0.5.120002.tar.gz
  • Upload date:
  • Size: 90.3 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.120002.tar.gz
Algorithm Hash digest
SHA256 b33ea9c6401d8a66c77a0e865f43c180e77020040dd1d78fb48e852855cf5757
MD5 8d93992ab948a1f45145c48b45adc88a
BLAKE2b-256 af9bfd25cde96019161098e304aab3caacc8ab8aff8fed296fac767f9321bb27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74f448291102fe926cf4a64825241511e831cc8a3e41c63f94e3ed9b033a223b
MD5 375ddcca72ae10fb58efa92d84ff12ab
BLAKE2b-256 04375098221536aea7bd7e644a35acc3106b46f92a68167a5e6e794f55e28e5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp311-pypy311_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 245d6c259e00c36ab1ae606f51f2a1542cc5813222fef50f1cc7358019319a05
MD5 5222f09c9add2d552ecc6ae6189799dd
BLAKE2b-256 b7177d4ccff65c0b205f8ecafd89da8947fd4ac100aa2910c25d851412f7f949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47936b977d424a5ae400aadad1227ef2452cd5a3c7d031df9c58e9265255cf8a
MD5 f8eabf9c531fa46194a9de976e13a3dd
BLAKE2b-256 e1830c456829383f5aa7a55f03b282baf548b6ae74563debe9bc37b1bacac400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp310-pypy310_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 cbf0fa15cb185f25a79431b94ad789716df2764e41fd88d882a317ef0bf673db
MD5 c33964989386473f4e2b9c2145b1ea8b
BLAKE2b-256 11bb4e6ab1943c3e1c2f6a66079cb52375ec21ad0e760e7c3d273d02524293f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50d04d71b5964eb3ccf50fb855b0cf15bfb0a9a05144d70a7f81e68f2ce77384
MD5 07d2ccacfff9017815e0a1e1258c6a33
BLAKE2b-256 3facc5c9ef95e4db5127043d24cd2e5c3ec80482d4fd53c3de0a721edbc16140

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp39-pypy39_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1b95e49179ff56d596b1e77ccf95fd807a63bed40b28e8c9c5960fc41e2d0aea
MD5 a5df9a5d8cfa0284eaac6f1d6db0c75d
BLAKE2b-256 c2118a41c1a59cf2ae772e18bbf3c5a04f8a622520fe624386bdc757760cea86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39cb6de384b070980d7e7f9b4d266b9868422b418aab1f35bc4d8bedff124fc0
MD5 1abc13e0967f28c3d0912a0187b7f8fd
BLAKE2b-256 9d17ac3005826286fff6de2e24e71e7a59e11da751f5615416e7da12da1aae53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-pp38-pypy38_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 332b9e5b0824fbb0d6ecb1c8dd4fef055e8d8014e083cc93f7ea3005f676e033
MD5 fef5cb01a08f5397d028fb170259d800
BLAKE2b-256 a4a31dae889b73926112b65fcbfdaa19f80534bc858d435fdec5f66dbef5541e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ddc67f7278b4d05901e9e0270e493580837ccb9b1f5a0fcee36fe7468be0c88
MD5 4d3eb66b10d6a05546a00f7bccaf15a2
BLAKE2b-256 6cc32d274f3a06e080d71388249561541e4a51619c16311c516a91e78769e08b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 08c94a765ece4858cf91a2525dcb288d936ead09e1b415fc935adc0cb617408c
MD5 85977949e6c76278b51a1c925e21790a
BLAKE2b-256 a813c427f60351ac1bfacdc0e1dd7abd17cb889a1480afdd5df3620d8486f721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9f88cc3ebf07f4234ebb915f1b225949c43b11677a5c4844a9ebadb18ea4614
MD5 4b747eb2107901f4190a898c736f0371
BLAKE2b-256 88541c202e58c699d6fef35273ee2725bb656ea30b72583b629fdc9e1a777a9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 76a9e26ffff2103d97f2b9d5397d674f8da6d56a9f459ab809580c8dc19c30ab
MD5 b08aa8f815299f90a1878797db259c21
BLAKE2b-256 24e51586340cc5e2ceede803890dccc18880b6a826c7d2bb8dd5c539cc868392

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bb418fb79ddb2aa69857d235cc0741d75e57fed86ab184c16598bdfe1e2f028
MD5 7977e0c744c6addf60935530958e25d9
BLAKE2b-256 2f7cfde61f07ba82ddc0352e52a4daa033761c42f3d77df1747c5228f1869f7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 eda48a76f37be9a03805e755a3d221cf2109a53ba4e07577381d2d47d152f597
MD5 466090032418805709204211e162ee9a
BLAKE2b-256 04a11d832119333f28f022194befa9ee1db28498dd38aca4903b6d2bae007caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42075da59c24f5499ed7cf9c80fcb29b1950d2051eda106b169bad48e392fbee
MD5 7f7c55d4f19f7a1d2be56d2302f6a621
BLAKE2b-256 5e6fea97a83061956b57b6d13987644c1dc02ff64e59d638896d793e7e7ba1b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9654824a9701d023db93c261d2c79f95529549a8ef7bf7213570738353be6229
MD5 86686ec773719126d728e56647358a87
BLAKE2b-256 902c613a463eacf7d2527c8ac1c0d72b9ccf7ba96b2dcf710da01a408a29a470

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 577621336702aa71a152a67435769874b3a58d32b3dad8086ef95b532adc620b
MD5 abbc5b685f8e54dc0a7a42f49392853f
BLAKE2b-256 a8c8cafcc6fd9ead2846a2fb6f2f2773ee6b957e750854d29c1356b55b5afc43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d94225eac9f771ffde0c5c2f9e0cbdac3ee8d236d98b2902e569b7264fd51998
MD5 a92a58da16ea48487d464a48ff6b30ea
BLAKE2b-256 ddea7213a8ef670fb223723bae105313d16500591d08d00ad6bc791ebfc54f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2e40cdf6e8b2767cb5ba021b07a98d9bbd228c35a5fee04ce79bef705777bfc
MD5 89843d78b2dafbbe0c99ae5228735371
BLAKE2b-256 dd969ee76d4a88c634dcd8d1f84134ba24748e5ab1f194cf2f568c17c87d5f64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.120002-cp38-cp38-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4ed50707fe863789fa03a914bc5b737f6055b6778cc8f18596698a39ce61648c
MD5 a45c4422ae0ead942fe56da552ffa29b
BLAKE2b-256 362326b592d1f0c18b511e64f23b32e26512d64f3efa3f70da3238d962287cd2

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