code: def acquire(self):
      if self.sema < 1:
          return False
      self.sema -= 1
      return True
  
imports: from __future__ import annotations
  import asyncio
  import collections
  import functools
  import logging
  import time
  import traceback
  import typing
  from functools import cached_property
  import attr
  import numpy
  from ..utils.alg import TokenBucket
label_desc: Use image node_id 2 for calling the NonBlockSema obj's underlying member method code with example usage: obj.acquire() and returns: True, False