pysyncobj.batteries package

ReplCounter

class pysyncobj.batteries.ReplCounter

Simple distributed counter. You can set, add, sub and inc counter value.

add(value)

Adds value to a counter.

Parameters

value – value to add

Returns

new counter value

get()
Returns

current counter value

inc()

Increments counter value by one.

Returns

new counter value

set(newValue)

Set new value to a counter.

Parameters

newValue – new value

Returns

new counter value

sub(value)

Subtracts a value from counter.

Parameters

value – value to subtract

Returns

new counter value

ReplList

class pysyncobj.batteries.ReplList

Distributed list - it has an interface similar to a regular list.

append(item)

Append item to end

count(element)

Return number of occurrences of element

extend(other)

Extend list by appending elements from the iterable

get(position)

Return value at given position

index(element)

Return first position of element. Raises ValueError if the value is not present.

insert(position, element)

Insert object before position

pop(position=None)

Remove and return item at position (default last). Raises IndexError if list is empty or index is out of range.

rawData()

Return internal list - use it carefully

remove(element)

Remove first occurrence of element. Raises ValueError if the value is not present.

reset(newData)

Replace list with a new one

set(position, newValue)

Update value at given position.

sort(reverse=False)

Stable sort IN PLACE

ReplDict

class pysyncobj.batteries.ReplDict

Distributed dict - it has an interface similar to a regular dict.

clear()

Remove all items from dict

get(key, default=None)

Return value for given key, return default if key not exist

items()

Return all items

keys()

Return all keys

pop(key, default=None)

Remove and return value for given key, return default if key not exist

rawData()

Return internal dict - use it carefully

reset(newData)

Replace dict with a new one

set(key, value)

Set value for specified key

setdefault(key, default)

Return value for specified key, set default value if key not exist

update(other)

Adds all values from the other dict

values()

Return all values

ReplSet

class pysyncobj.batteries.ReplSet

Distributed set - it has an interface similar to a regular set.

add(item)

Add an element to a set

clear()

Remove all elements from this set.

discard(item)

Remove an element from a set if it is a member. If the element is not a member, do nothing.

pop()

Remove and return an arbitrary set element. Raises KeyError if the set is empty.

rawData()

Return internal dict - use it carefully

remove(item)

Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.

reset(newData)

Replace set with a new one

update(other)

Update a set with the union of itself and others.

ReplQueue

class pysyncobj.batteries.ReplQueue(maxsize=0)

Replicated FIFO queue. Based on collections.deque. Has an interface similar to Queue.

Parameters

maxsize (int) – Max queue size.

empty()

True if queue is empty

full()

True if queue is full

get(default=None)

Extract item from queue. Return default if queue is empty.

put(item)

Put an item into the queue. True - if item placed in queue. False - if queue is full and item can not be placed.

qsize()

Return size of queue

ReplPriorityQueue

class pysyncobj.batteries.ReplPriorityQueue(maxsize=0)

Replicated priority queue. Based on heapq. Has an interface similar to Queue.

Parameters

maxsize (int) – Max queue size.

empty()

True if queue is empty

full()

True if queue is full

get(default=None)

Extract the smallest item from queue. Return default if queue is empty.

put(item)

Put an item into the queue. Items should be comparable, eg. tuples. True - if item placed in queue. False - if queue is full and item can not be placed.

qsize()

Return size of queue

ReplLockManager

class pysyncobj.batteries.ReplLockManager(autoUnlockTime, selfID=None)

Replicated Lock Manager. Allow to acquire / release distributed locks.

Parameters
  • autoUnlockTime (float) – lock will be released automatically if no response from holder for more than autoUnlockTime seconds

  • selfID (str) – (optional) - unique id of current lock holder.

destroy()

Destroy should be called before destroying ReplLockManager

isAcquired(lockID)

Check if lock is acquired by ourselves.

Parameters

lockID (str) – unique lock identifier.

:return True if lock is acquired by ourselves.

release(lockID, callback=None, sync=False, timeout=None)

Release previously-acquired lock.

Parameters
  • lockID (str) – unique lock identifier.

  • sync (bool) – True - to wait until lock is released or failed to release.

  • callback (func(opResult, error)) – if sync is False - callback will be called with operation result.

  • timeout (float) – max operation time (default - unlimited)

tryAcquire(lockID, callback=None, sync=False, timeout=None)

Attempt to acquire lock.

Parameters
  • lockID (str) – unique lock identifier.

  • sync (bool) – True - to wait until lock is acquired or failed to acquire.

  • callback (func(opResult, error)) – if sync is False - callback will be called with operation result.

  • timeout (float) – max operation time (default - unlimited)

:return True if acquired, False - somebody else already acquired lock