summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-05-18 12:42:29 +0000
committerptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b>2016-05-18 12:42:29 +0000
commite907ec4a5d19c0eff3f34d1e29c0a818b2de4bbd (patch)
tree16b52892c565983d1f822397271a0d5ed19f818a
parentb1465aaa68987b460f6e5e1e071212c8e2da07a9 (diff)
downloadpyparsing-e907ec4a5d19c0eff3f34d1e29c0a818b2de4bbd.tar.gz
Add UUID to pyparsing_common
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/trunk@354 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
-rw-r--r--src/CHANGES1
-rw-r--r--src/pyparsing.py6
-rw-r--r--src/unitTests.py1
3 files changed, 6 insertions, 2 deletions
diff --git a/src/CHANGES b/src/CHANGES
index b9f6a38..b1aa686 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -9,6 +9,7 @@ Verison 2.1.5 -
of IPv6
. MAC address
. ISO8601 date and date time strings
+ . UUID (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Version 2.1.4 - May, 2016
diff --git a/src/pyparsing.py b/src/pyparsing.py
index 3383046..177d833 100644
--- a/src/pyparsing.py
+++ b/src/pyparsing.py
@@ -58,7 +58,7 @@ The pyparsing module handles some of the problems that are typically vexing when
"""
__version__ = "2.1.5"
-__versionTime__ = "18 May 2016 05:17 UTC"
+__versionTime__ = "18 May 2016 06:01 UTC"
__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>"
import string
@@ -3932,7 +3932,7 @@ class pyparsing_common:
"""any int or real number, returned as float"""
identifier = Word(alphas+'_', alphanums+'_').setName("identifier")
- """typical code identifier"""
+ """typical code identifier (leading alpha or '_', followed by 0 or more alphas, nums, or '_')"""
ipv4_address = Regex(r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})){3}').setName("IPv4 address")
"IPv4 address (C{0.0.0.0 - 255.255.255.255})"
@@ -3954,6 +3954,8 @@ class pyparsing_common:
iso8601_datetime = Regex(r'\d{4}-\d\d-\d\dT\d\d:\d\d(:\d\d(\.\d*)?)?(Z|[+-]\d\d:?\d\d)?').setName("ISO8601 datetime")
"ISO8601 datetime (C{yyyy-mm-ddThh:mm:ss.s(Z|+-00:00)})"
+ uuid = Regex(r'[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}').setName("UUID")
+ "UUID (C{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})"
if __name__ == "__main__":
diff --git a/src/unitTests.py b/src/unitTests.py
index 306455e..ddbdf98 100644
--- a/src/unitTests.py
+++ b/src/unitTests.py
@@ -2708,6 +2708,7 @@ class CommonExpressionsTest(ParseTestCase):
""", parseAll=True, printResults=False)[0]
assert success, "error in parsing valid iso8601_datetime"
+ assert pyparsing_common.uuid.matches("123e4567-e89b-12d3-a456-426655440000"), "failed to parse valid uuid"
class MiscellaneousParserTests(ParseTestCase):
def runTest(self):