A curl command is a line of shell, not a list of flags, and most converters go wrong before they reach curl's options. What curl receives is what is left after the shell has removed the quoting, joined the continuation lines and stopped at the first unquoted |, ; or &. So the command goes through a real shell word splitter: single quotes, double quotes, backslash escapes, and the $'...' strings Chrome's Copy as cURL writes whenever a value contains an apostrophe, a ! or a control character, down to \xHH, \uHHHH and octal escapes. Chrome's cmd format for Windows is read too, with cmd's ^ escapes removed before the C runtime's quoting rules are applied. PowerShell is refused with an explanation, because there curl is an alias for Invoke-WebRequest, a different program.
The options then mean what curl's manual says they mean. Repeated -d values are joined with & and --json values are not; -d @file reads a file and strips its newlines, while --data-raw gives @ no meaning; -G moves the data into the query string; -d and -F imply POST unless -X says otherwise, and -I means HEAD. Headers keep curl's order, duplicates included, and the ones curl adds because of an option — the form Content-Type that -d implies, the pair --json adds, the User-Agent from -A — are written out, because the libraries would not add them. The headers curl adds for itself, its own User-Agent and Accept: */*, are left to each library.
The code is written to send the same bytes. Strings are escaped for each language, and Python encodes a non-ASCII body to UTF-8, since requests would otherwise send it as Latin-1, or refuse it. A JSON body becomes a native object only when it survives the round trip; a duplicate key, or a number the language would rewrite, keeps it as text. Redirects are followed only with -L, because curl does not follow them and requests, fetch and Go's client do. -k becomes the library's switch where one exists, with a comment saying it disables certificate checks. What cannot be carried over — a file a browser cannot open, a shell variable, --proxy, -T, digest or NTLM authentication, a second request after --next — is named in a warning rather than dropped, and so is every credential in the code, since a copied browser request carries your session.