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