def release(self, permits=<NUM_LIT:1>):
check_not_negative(permits, "<STR_LIT>")<EOL>return self._encode_invoke(semaphore_release_codec, permits=permits)<EOL>
Releases one or given number of permits, increasing the number of available permits by one or that amount.

There is no requirement that a thread that releases a permit must have acquired that permit by calling one of
the acquire methods. Correct usage of a semaphore is established by programming convention in the application.

:param permits: (int), the number of permits to release (optional).