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).

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.110100.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.110100-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-pp311-pypy311_pp73-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.110100-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-pp310-pypy310_pp73-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.110100-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-pp39-pypy39_pp73-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.110100-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-pp38-pypy38_pp73-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded PyPymacOS 15.0+ ARM64

pyreindexer-0.5.110100-cp313-cp313-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp313-cp313-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyreindexer-0.5.110100-cp312-cp312-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp312-cp312-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pyreindexer-0.5.110100-cp311-cp311-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp311-cp311-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pyreindexer-0.5.110100-cp310-cp310-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp310-cp310-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pyreindexer-0.5.110100-cp39-cp39-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp39-cp39-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

pyreindexer-0.5.110100-cp38-cp38-manylinux_2_28_x86_64.whl (23.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

pyreindexer-0.5.110100-cp38-cp38-macosx_15_0_arm64.whl (17.6 MB view details)

Uploaded CPython 3.8macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: pyreindexer-0.5.110100.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.110100.tar.gz
Algorithm Hash digest
SHA256 5d9ae348077c7889a6a409a3ea3a40de3d74a6a42dd276e7604ad420e90d1454
MD5 c8f66dd0fb0dd7abf2064d071be13dfa
BLAKE2b-256 0cc371077604588ca4ebba6a04ec8cdc275a77f4656326d9b6eb827e3066ddf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d2f84638308020c6139d53234a59e195ee268c509687af55dd0e4ff668a5db7
MD5 9d48b7bcb9fe2cf187a9ab7ab4cac534
BLAKE2b-256 a17fc46dc5dcfd7f7158c6d929411c839d4032246c0478b563e36b17b865712f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp311-pypy311_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 719b22d56628375ce3edd12f2157fd2c23a3270031113465a58bd90e84ca2261
MD5 70d57eaba50a2158725feaf33dc0360b
BLAKE2b-256 365b6c411bec5cf706018ad748868e406d8f2c214da58954ab1dcccac910f121

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 013c402f6fbaef01c79beb9cc930a63bda10bbf0c55e2d9fa63ed9a27de78d48
MD5 4e6565d95562ee154c6eb43a74e965d9
BLAKE2b-256 f2eb255b09ad533f1333dc09df5007849063d5da629056277f85aa6b2218c30f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp310-pypy310_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 53b98dccdb5acc16ae0d98edd51e90d1681e38cd905608b0b0197cb9fa622001
MD5 2a484b1d4ab7c1fc37eff3e854031096
BLAKE2b-256 df2a5faba9e4aa6323f08bd11f4b1165339761a6ae3cdd240ca4ad81757a9baf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a3357f1576ada261f3c9fe1f19913bf9bfec871f5ff860f8000167a1d984f2e
MD5 2e5af5a87a61e3470d8f3b3124db7483
BLAKE2b-256 35bca834839ba1fafc4ebbc57453ff285a8aa3d4478c2cb17cac918806b565f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp39-pypy39_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0a6375f3c3787148fe782cb2424b9de1dc5303e0cfbe01965452d29e9b8fedaa
MD5 9abb11580658945265f21671ce6e2a44
BLAKE2b-256 8a30714fc59b25b6ad4953bd4c5a20aef356b6598ff94e05208a757a866f446a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 903346c8de38c5f2cdbdac2bf793e8f53dc013a826cdf5e51283adc01306da72
MD5 689f25d1c0ac5d5a9c6f2a7932677bfc
BLAKE2b-256 200af30fc24c8e28788a6a321e3e2b7a295f431e0c94f0df8349d203048a2337

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-pp38-pypy38_pp73-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 789edb254e8fe9102669d90400dfd100ed095f4f7ed79506d15303faf89c49c4
MD5 3ca4c4ab2fc997dec4ab43dd36113d9b
BLAKE2b-256 da783b830b0329e314573aa346fa0a28b7c5a5bd69c435bbc9dc5df74ef4f18e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 822c2e018f6b53e7879d0a8a7956bf9cb8644c05a7b822c61d6e90df7cee6a00
MD5 9722afe59139ba47ca734be5f3b7bae2
BLAKE2b-256 370b92e862d26a6634e64dba31307141c934d7bd07a363fcf9c393cd908afbf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 dbe383df6a7261e2b18ac82031e3e7987f903d86e47ed8f54d8ed28680e9f836
MD5 f9bc89ee79e933ffd9fdbf65d25e22cb
BLAKE2b-256 3f76a933d833d08c1e4be9fc07d97f66003c5bcab051421d2400d57099e1caf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ddf55dc25c9dd15a76baa9af14d302006f7d1118cbe8993145cc0bec61d1bcb
MD5 6e0b3008c1eaba6a7bcab4e2af7c1a29
BLAKE2b-256 5b880dc8a009ddf60786c6aaa7bd401f31514ebcea9b16550117b93fbeafc392

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4cca0a9fba40e41f58394005d740246d6c85e1ba7aa9886db5c792c5be826dc0
MD5 ae126c36db9dae871cb3bfaf6f7a3d06
BLAKE2b-256 b8b222328720d8432edc5a43366890a1e156e7d93cedd1724efe8df07ed42d4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd37a0dcb01d6b5d386b4d75f9302a20f5f0a612ced0e40fccfe7eac680a301e
MD5 aca49688a8467a77f1bd7f9f9490ff01
BLAKE2b-256 75874b5bf92a82d5eeb023707bd944fe845d35391152275aea299f5b1a92137b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c57b205faceccd4ea62ccce4cee9d922da20455322bc576fbd429d48ff764c9c
MD5 c807472f7cd125f3cf24190bc9ff3e3b
BLAKE2b-256 3bd9e60aee34bd1c63564c02b5c90a87e76e911fedd9edb16cf7de1e2a9d7ea8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61ae05ff14f2826d80430b9723a3f1ba54ffd7ce014ec2927fa86a9e5b09748a
MD5 4a687b0e80373e87f21cc23d400c22de
BLAKE2b-256 79adf8f38ae4041d45e991250bf5e7e7e06d665e98184871320807e85d266b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e385acb456396125470d8befdb4204a8fc496517d92dcb349d270c30c7872a41
MD5 62a39dff65db81b76efe016c1417d602
BLAKE2b-256 ce8e82dd38aacc57181ed7785b23e7c1411e19851a9a34707716468626c8358f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d58044e9163cdedb88eebf416998003288b4dbfadc82e3963651d0f3b0e395e
MD5 f0269756009bbc569946dd6c2ec229cf
BLAKE2b-256 2e31c70389d399cfa5f38bc7c8375f8245b7d1c1a71983b209be6357f5817f02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 eb0f2180dc64e265cc6fe06b5691118e27fa6a1b63c9a5bf64faca44a9310afb
MD5 abc752612a777786bdb3e29a8367fe84
BLAKE2b-256 7848760906eb6f6e1c67991a72c95f9b2372ba504d66510558cb85e5947185ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cde997036d2a3574eaee5a02892de97ce1c32131e5aa69b103320c55fc97d5db
MD5 6e3984ba9266c8f6bcb7de180bbd10b1
BLAKE2b-256 00a0e3e3d7d02a39d36e7dd3a061565f63025f05024136bea38d17c08aefd22a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyreindexer-0.5.110100-cp38-cp38-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0f110c53261906a3fedb23f2593653241f65afa2d3fa3cfbcffb4b3b194d252a
MD5 93872a32c3861dd6eac44708c0ddf100
BLAKE2b-256 eb9f5b3b096ae4da2add2fe618a2e5a579abf7045b76b2f61666752e7fa92550

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