From f2775cb8cdcf1dd56add57133fcfb4e6769d0911 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 07:11:32 +0100 Subject: [PATCH 01/19] uuid: add --count to main Sometimes you need more than one UUID. Inspired by https://www.man7.org/linux/man-pages/man1/uuidgen.1.html --- Doc/library/uuid.rst | 6 ++++++ Lib/uuid.py | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index 0fb29460e2e68a..5ec0bbc8bae166 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -377,6 +377,10 @@ The following options are accepted: The name used as part of generating the uuid. Only required for :func:`uuid3` / :func:`uuid5` functions. +.. option:: --count + + Generate more uuids in loop. + .. _uuid-example: @@ -445,3 +449,5 @@ Here are some examples of typical usage of the :mod:`uuid` command line interfac # generate a uuid using uuid5 $ python -m uuid -u uuid5 -n @url -N example.com + # generate 42 random uuids + $ python -m uuid --count 42 diff --git a/Lib/uuid.py b/Lib/uuid.py index 6f7a7a3f42ac11..1f5b42fe2fb375 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -949,6 +949,8 @@ def main(): parser.add_argument("-N", "--name", help="The name used as part of generating the uuid. " "Only required for uuid3/uuid5 functions.") + parser.add_argument("--count", type=int, default=1, + help="Generate more uuids in loop. ") args = parser.parse_args() uuid_func = uuid_funcs[args.uuid] @@ -963,9 +965,11 @@ def main(): "Run 'python -m uuid -h' for more information." ) namespace = namespaces[namespace] if namespace in namespaces else UUID(namespace) - print(uuid_func(namespace, name)) + for _ in range(args.count): + print(uuid_func(namespace, name)) else: - print(uuid_func()) + for _ in range(args.count): + print(uuid_func()) # The following standard UUIDs are for use with uuid3() or uuid5(). From ff6dc1cf290947d0d65a39d8d4c73945817ef61a Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 12:22:25 +0100 Subject: [PATCH 02/19] Add news --- .../next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst diff --git a/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst b/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst new file mode 100644 index 00000000000000..0af31d19addf61 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst @@ -0,0 +1 @@ +Add ``--count`` to main of the :mod:`uuid` module. From 0f95b45cf7b27817ae7ed04e10d9304a71bd696d Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 12:23:05 +0100 Subject: [PATCH 03/19] "Generate NUM fresh UUIDs." --- Doc/library/uuid.rst | 5 +++-- Lib/uuid.py | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index 5ec0bbc8bae166..4145f46df41b31 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -377,9 +377,10 @@ The following options are accepted: The name used as part of generating the uuid. Only required for :func:`uuid3` / :func:`uuid5` functions. -.. option:: --count +.. option:: -c + --count - Generate more uuids in loop. + Generate NUM fresh UUIDs. .. _uuid-example: diff --git a/Lib/uuid.py b/Lib/uuid.py index 1f5b42fe2fb375..7ad95c2a16bca4 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -949,8 +949,8 @@ def main(): parser.add_argument("-N", "--name", help="The name used as part of generating the uuid. " "Only required for uuid3/uuid5 functions.") - parser.add_argument("--count", type=int, default=1, - help="Generate more uuids in loop. ") + parser.add_argument("-c", "--count", metavar="NUM", type=int, default=1, + help="Generate NUM fresh UUIDs.") args = parser.parse_args() uuid_func = uuid_funcs[args.uuid] From 8ec7c365fb7817422414694f926d66f3016945e1 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:06:47 +0100 Subject: [PATCH 04/19] Update Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- .../next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst b/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst index 0af31d19addf61..31c16767d922d0 100644 --- a/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst +++ b/Misc/NEWS.d/next/Library/2025-03-14-12-22-02.gh-issue-131236.HjqFq0.rst @@ -1 +1 @@ -Add ``--count`` to main of the :mod:`uuid` module. +Allow to generate multiple UUIDs at once via :option:`python -m uuid --count `. From 13c34287d78cb7dea7d41bb10f19bbaf70eca008 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:07:47 +0100 Subject: [PATCH 05/19] Update Doc/library/uuid.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- Doc/library/uuid.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index 4145f46df41b31..dcca0dc08e16be 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -377,10 +377,12 @@ The following options are accepted: The name used as part of generating the uuid. Only required for :func:`uuid3` / :func:`uuid5` functions. -.. option:: -c - --count +.. option:: -C + --count - Generate NUM fresh UUIDs. + Generate *num* fresh UUIDs. + + .. versionadded:: next .. _uuid-example: From 6535ead5c9c5d9e26ba7e2cebf27f0b24c13fd29 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:07:55 +0100 Subject: [PATCH 06/19] Update Lib/uuid.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- Lib/uuid.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index 7ad95c2a16bca4..ae86ec65959d7e 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -949,7 +949,7 @@ def main(): parser.add_argument("-N", "--name", help="The name used as part of generating the uuid. " "Only required for uuid3/uuid5 functions.") - parser.add_argument("-c", "--count", metavar="NUM", type=int, default=1, + parser.add_argument("-C", "--count", metavar="NUM", type=int, default=1, help="Generate NUM fresh UUIDs.") args = parser.parse_args() From e34e8b4725d2779879a9679d7443bd6fe6ce83b6 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:00:12 +0100 Subject: [PATCH 07/19] "UUID" --- Doc/library/uuid.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index dcca0dc08e16be..aecd948e16723e 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -439,18 +439,18 @@ Here are some examples of typical usage of the :mod:`uuid` module:: Command-Line Example -------------------- -Here are some examples of typical usage of the :mod:`uuid` command line interface: +Here are some examples of typical usage of the :mod:`uuid` command-line interface: .. code-block:: shell - # generate a random uuid - by default uuid4() is used + # generate a random UUID - by default uuid4() is used $ python -m uuid - # generate a uuid using uuid1() + # generate a UUID using uuid1() $ python -m uuid -u uuid1 - # generate a uuid using uuid5 + # generate a UUID using uuid5 $ python -m uuid -u uuid5 -n @url -N example.com - # generate 42 random uuids + # generate 42 random UUIDs $ python -m uuid --count 42 From 3cab8b2c206452e9937f1003eee1aa583b87b2ff Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:01:05 +0100 Subject: [PATCH 08/19] uuid -C --- Doc/library/uuid.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/library/uuid.rst b/Doc/library/uuid.rst index aecd948e16723e..cc24f84f4b82bb 100644 --- a/Doc/library/uuid.rst +++ b/Doc/library/uuid.rst @@ -453,4 +453,4 @@ Here are some examples of typical usage of the :mod:`uuid` command-line interfac $ python -m uuid -u uuid5 -n @url -N example.com # generate 42 random UUIDs - $ python -m uuid --count 42 + $ python -m uuid -C 42 From 5b5f34a1d43eacd3d716fc64e72d3257d7aa7833 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:05:17 +0100 Subject: [PATCH 09/19] test_cli_uuid4_outputted_with_count --- Lib/test/test_uuid.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index bcc673233f6588..91210923991f8e 100755 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -1166,6 +1166,20 @@ def test_cli_uuid4_outputted_with_no_args(self): self.assertEqual(output, str(uuid_output)) self.assertEqual(uuid_output.version, 4) + @mock.patch.object(sys, "argv", ["", "-C", "3"]) + def test_cli_uuid4_outputted_with_count(self): + stdout = io.StringIO() + with contextlib.redirect_stdout(stdout): + self.uuid.main() + + output = stdout.getvalue().strip().splitlines() + + # Check that 3 UUIDs in the format of uuid4 have been generated + self.assertEqual(len(output), 3) + for o in output: + uuid_output = self.uuid.UUID(o) + self.assertEqual(uuid_output.version, 4) + @mock.patch.object(sys, "argv", ["", "-u", "uuid3", "-n", "@dns", "-N", "python.org"]) def test_cli_uuid3_ouputted_with_valid_namespace_and_name(self): From 4577a992c7a8cd39a19bf5a7e4de9330498c4775 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:09:56 +0100 Subject: [PATCH 10/19] Add 3.14 news --- Doc/whatsnew/3.14.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 65ab57eb821c6c..54008f22d5aeb6 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -1390,6 +1390,12 @@ urllib :func:`~urllib.request.build_opener`. (Contributed by Barney Gale in :gh:`84850`.) +uuid +---- + +* Allow to generate multiple UUIDs at once via :option:`python -m uuid --count `. + (Contributed by Simon Legner in :gh:`131236`.) + Others ------ From 6ea8b3a51ce655e3500d77ea624ea794b84dcc33 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:24:20 +0100 Subject: [PATCH 11/19] Add 3.14 news --- Doc/whatsnew/3.14.rst | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 54008f22d5aeb6..ae3e5ea4a39a8d 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -978,6 +978,9 @@ uuid Nil and Max UUID formats as defined by :rfc:`9562`. (Contributed by Nick Pope in :gh:`128427`.) +* Allow to generate multiple UUIDs at once via :option:`python -m uuid --count `. + (Contributed by Simon Legner in :gh:`131236`.) + zipinfo ------- @@ -1390,11 +1393,6 @@ urllib :func:`~urllib.request.build_opener`. (Contributed by Barney Gale in :gh:`84850`.) -uuid ----- - -* Allow to generate multiple UUIDs at once via :option:`python -m uuid --count `. - (Contributed by Simon Legner in :gh:`131236`.) Others ------ From 206caad1fb6fa7ebef9d09714e63c5006b9d2e42 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 13:25:32 +0100 Subject: [PATCH 12/19] Add 3.14 news --- Doc/whatsnew/3.14.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index ae3e5ea4a39a8d..d0926a6fca637c 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -1393,7 +1393,6 @@ urllib :func:`~urllib.request.build_opener`. (Contributed by Barney Gale in :gh:`84850`.) - Others ------ From b3ef5e64ed4b0a068837cdba47a2ea8c2b589628 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 16:33:01 +0100 Subject: [PATCH 13/19] "UUID" --- Lib/uuid.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index ae86ec65959d7e..e9856da749da14 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -937,9 +937,9 @@ def main(): import argparse parser = argparse.ArgumentParser( - description="Generates a uuid using the selected uuid function.") + description="Generate a UUID using the selected UUID function.") parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", - help="The function to use to generate the uuid. " + help="The function to use to generate the UUID. " "By default uuid4 function is used.") parser.add_argument("-n", "--namespace", help="The namespace is a UUID, or '@ns' where 'ns' is a " @@ -947,7 +947,7 @@ def main(): "Such as @dns, @url, @oid, and @x500. " "Only required for uuid3/uuid5 functions.") parser.add_argument("-N", "--name", - help="The name used as part of generating the uuid. " + help="The name used as part of generating the UUID. " "Only required for uuid3/uuid5 functions.") parser.add_argument("-C", "--count", metavar="NUM", type=int, default=1, help="Generate NUM fresh UUIDs.") From 33f7cd1a8acf7384f145bb661d12868345e25fe3 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 16:40:49 +0100 Subject: [PATCH 14/19] ArgumentDefaultsHelpFormatter --- Lib/uuid.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index e9856da749da14..79f2801e90e64b 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -937,20 +937,20 @@ def main(): import argparse parser = argparse.ArgumentParser( + formatter_class=argparse.ArgumentDefaultsHelpFormatter, description="Generate a UUID using the selected UUID function.") parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", - help="The function to use to generate the UUID. " - "By default uuid4 function is used.") - parser.add_argument("-n", "--namespace", - help="The namespace is a UUID, or '@ns' where 'ns' is a " - "well-known predefined UUID addressed by namespace name. " - "Such as @dns, @url, @oid, and @x500. " - "Only required for uuid3/uuid5 functions.") + help="function to generate the UUID") + parser.add_argument("-n", "--namespace", metavar="NS", + help="a UUID, or '@ns' where 'ns' is a " + "well-known predefined UUID addressed by namespace name, " + "such as @dns, @url, @oid, and @x500 " + "(only required for uuid3/uuid5)") parser.add_argument("-N", "--name", - help="The name used as part of generating the UUID. " - "Only required for uuid3/uuid5 functions.") + help="name used as part of generating the UUID " + "(only required for uuid3/uuid5)") parser.add_argument("-C", "--count", metavar="NUM", type=int, default=1, - help="Generate NUM fresh UUIDs.") + help="generate NUM fresh UUIDs") args = parser.parse_args() uuid_func = uuid_funcs[args.uuid] From 43ee1abc1aa08f65afbafe0d96a4723dc2c7867f Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 16:42:35 +0100 Subject: [PATCH 15/19] namespace --- Lib/uuid.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index 79f2801e90e64b..01117fe7f1e428 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -942,9 +942,8 @@ def main(): parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", help="function to generate the UUID") parser.add_argument("-n", "--namespace", metavar="NS", - help="a UUID, or '@ns' where 'ns' is a " - "well-known predefined UUID addressed by namespace name, " - "such as @dns, @url, @oid, and @x500 " + help="a UUID, or @dns, @url, @oid, @x500, or any '@ns' where 'ns' is a " + "well-known predefined UUID addressed by namespace name " "(only required for uuid3/uuid5)") parser.add_argument("-N", "--name", help="name used as part of generating the UUID " From e7c214fd6d3944be7a086fbd5614e9d0b1b5dde4 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 17:06:40 +0100 Subject: [PATCH 16/19] namespace --- Lib/uuid.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index 01117fe7f1e428..f31c34136c49b2 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -941,9 +941,8 @@ def main(): description="Generate a UUID using the selected UUID function.") parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", help="function to generate the UUID") - parser.add_argument("-n", "--namespace", metavar="NS", - help="a UUID, or @dns, @url, @oid, @x500, or any '@ns' where 'ns' is a " - "well-known predefined UUID addressed by namespace name " + parser.add_argument("-n", "--namespace", choices=["any UUID", *namespaces.keys()], + help="a UUID, or a well-known predefined UUID addressed by namespace name " "(only required for uuid3/uuid5)") parser.add_argument("-N", "--name", help="name used as part of generating the UUID " From 1a6ad787555e3f6b8f76886e0ee746afc0bef0f1 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Fri, 14 Mar 2025 17:14:11 +0100 Subject: [PATCH 17/19] namespace --- Lib/uuid.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index f31c34136c49b2..105ecdf052f7a7 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -942,11 +942,9 @@ def main(): parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", help="function to generate the UUID") parser.add_argument("-n", "--namespace", choices=["any UUID", *namespaces.keys()], - help="a UUID, or a well-known predefined UUID addressed by namespace name " - "(only required for uuid3/uuid5)") + help="uuid3/uuid5 only: a UUID, or a well-known predefined UUID addressed by namespace name)") parser.add_argument("-N", "--name", - help="name used as part of generating the UUID " - "(only required for uuid3/uuid5)") + help="uuid3/uuid5 only: name used as part of generating the UUID") parser.add_argument("-C", "--count", metavar="NUM", type=int, default=1, help="generate NUM fresh UUIDs") From 1acb59403d41ff95c7de194e07b512ba914f0ece Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sat, 15 Mar 2025 18:27:00 +0100 Subject: [PATCH 18/19] wrap lines --- Lib/uuid.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index 105ecdf052f7a7..fbefa08d107106 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -942,9 +942,12 @@ def main(): parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", help="function to generate the UUID") parser.add_argument("-n", "--namespace", choices=["any UUID", *namespaces.keys()], - help="uuid3/uuid5 only: a UUID, or a well-known predefined UUID addressed by namespace name)") + help="uuid3/uuid5 only: " + "a UUID, or a well-known predefined UUID addressed " + "by namespace name)") parser.add_argument("-N", "--name", - help="uuid3/uuid5 only: name used as part of generating the UUID") + help="uuid3/uuid5 only: " + "name used as part of generating the UUID") parser.add_argument("-C", "--count", metavar="NUM", type=int, default=1, help="generate NUM fresh UUIDs") From 03ec58b020fe04217fe0f06a61fdb1269db3242b Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Sat, 15 Mar 2025 20:59:12 +0100 Subject: [PATCH 19/19] wrap lines --- Lib/uuid.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/uuid.py b/Lib/uuid.py index fbefa08d107106..984981512d64a6 100644 --- a/Lib/uuid.py +++ b/Lib/uuid.py @@ -939,12 +939,15 @@ def main(): parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter, description="Generate a UUID using the selected UUID function.") - parser.add_argument("-u", "--uuid", choices=uuid_funcs.keys(), default="uuid4", + parser.add_argument("-u", "--uuid", + choices=uuid_funcs.keys(), + default="uuid4", help="function to generate the UUID") - parser.add_argument("-n", "--namespace", choices=["any UUID", *namespaces.keys()], + parser.add_argument("-n", "--namespace", + choices=["any UUID", *namespaces.keys()], help="uuid3/uuid5 only: " "a UUID, or a well-known predefined UUID addressed " - "by namespace name)") + "by namespace name") parser.add_argument("-N", "--name", help="uuid3/uuid5 only: " "name used as part of generating the UUID") pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy