Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#28883: contrib: use a raw string for a regular …
Browse files Browse the repository at this point in the history
…expression literal that contains backslashes in signet/miner

defdf67 contrib: use a raw string for a regular expression literal that contains backslashes in signet/miner (muxator)

Pull request description:

  Running `contrib/signet/miner` under python >= 3.12 causes a `SyntaxWarning`. The problem was already present in previous versions, but it only triggered a `DeprecationWarning`, which was not shown by default.

  The change is useful for future-proofing the code base, since future python versions will start to exit with a runtime exception (see the reference given later).

  Command to see the warning at runtime under python3.11 (`DeprecationWarning`, needs "-Walways"):
  ```
  $ python3.11 -Walways ./contrib/signet/miner
  <BASE>/contrib/signet/miner:33: DeprecationWarning: invalid escape sequence '\d'
    RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$")
  2023-11-15 16:02:49 ERROR Must specify command
  ```

  Command to see the warning at runtime under python3.12 (`SyntaxWarning`, no modifiers needed):
  ```
  $ python3.12 ./contrib/signet/miner
  <BASE>/contrib/signet/miner:33: SyntaxWarning: invalid escape sequence '\d'
    RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$")
  2023-11-15 16:03:00 ERROR Must specify command
  ```

  Reference (https://docs.python.org/3.8/library/re.html):
  > Regular expressions use the backslash character ('\') [...]. This collides with Python’s usage of the same character for the same purpose in string literals; [...]
  >
  > Also, please note that any invalid escape sequences in Python’s usage of the backslash in string literals now generate a DeprecationWarning and in the future this will become a SyntaxError.
  >
  > The solution is to use Python’s raw string notation for regular expression patterns;

ACKs for top commit:
  maflcko:
    lgtm ACK defdf67
  ajtowns:
    utACK defdf67

Tree-SHA512: 81bd4892938e7d40a226ca20b5b61ff2470ad763743528da290271faefc535167b56f44665e2d03ed2607c4f7bc8a3200e7931f98fe28dbaf0d2a842c96549f5
  • Loading branch information
fanquake committed Nov 16, 2023
2 parents 0aa014d + defdf67 commit 1430c4b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion contrib/signet/miner
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ logging.basicConfig(

SIGNET_HEADER = b"\xec\xc7\xda\xa2"
PSBT_SIGNET_BLOCK = b"\xfc\x06signetb" # proprietary PSBT global field holding the block being signed
RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$")
RE_MULTIMINER = re.compile(r"^(\d+)(-(\d+))?/(\d+)$")

def create_coinbase(height, value, spk):
cb = CTransaction()
Expand Down

0 comments on commit 1430c4b

Please sign in to comment.