code: def generate_binary_ulid(timestamp=None, monotonic=False):
      
      global _last_entropy, _last_timestamp
      if timestamp is None:
          timestamp = time.time()
      elif isinstance(timestamp, datetime.datetime):
          timestamp = calendar.timegm(timestamp.utctimetuple())
  
      ts = int(timestamp * 1000.0)
      ts_bytes = _to_binary(
          (ts >> shift) & 0xFF for shift in (40, 32, 24, 16, 8, 0)
      )
      entropy = os.urandom(10)
      if monotonic and _last_timestamp == ts and _last_entropy is not None:
          while entropy < _last_entropy:
              entropy = os.urandom(10)
      _last_entropy = entropy
      _last_timestamp = ts
      return ts_bytes + entropy
docs: Generate the bytes for an ULID.
  
      :param timestamp: An optional timestamp override.
                        If `None`, the current time is used.
      :type timestamp: int|float|datetime.datetime|None
      :param monotonic: Attempt to ensure ULIDs are monotonically increasing.
                        Monotonic behavior is not guaranteed when used from multiple threads.
      :type monotonic: bool
      :return: Bytestring of length 16.
      :rtype: bytes