summaryrefslogtreecommitdiff
path: root/examples/dhcpd_leases_parser.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2019-10-31 21:10:28 -0700
committerPaul McGuire <ptmcg@users.noreply.github.com>2019-10-31 23:10:28 -0500
commit53d1b4a6f48a53c4c4ec4ac7031362b691c0366d (patch)
tree088ad3cf3561b78a00af4fb2fd474f4a2b8ca70c /examples/dhcpd_leases_parser.py
parent41752aa52cc97c710474bb2972cceab057b52ad4 (diff)
downloadpyparsing-git-53d1b4a6f48a53c4c4ec4ac7031362b691c0366d.tar.gz
Blacken the project (#141)
Diffstat (limited to 'examples/dhcpd_leases_parser.py')
-rw-r--r--examples/dhcpd_leases_parser.py50
1 files changed, 30 insertions, 20 deletions
diff --git a/examples/dhcpd_leases_parser.py b/examples/dhcpd_leases_parser.py
index a885051..e9f64bd 100644
--- a/examples/dhcpd_leases_parser.py
+++ b/examples/dhcpd_leases_parser.py
@@ -44,28 +44,32 @@ lease 192.168.0.239 {
"""
from pyparsing import *
-import datetime,time
+import datetime, time
-LBRACE,RBRACE,SEMI,QUOTE = map(Suppress,'{};"')
-ipAddress = Combine(Word(nums) + ('.' + Word(nums))*3)
-hexint = Word(hexnums,exact=2)
-macAddress = Combine(hexint + (':'+hexint)*5)
+LBRACE, RBRACE, SEMI, QUOTE = map(Suppress, '{};"')
+ipAddress = Combine(Word(nums) + ("." + Word(nums)) * 3)
+hexint = Word(hexnums, exact=2)
+macAddress = Combine(hexint + (":" + hexint) * 5)
hdwType = Word(alphanums)
-yyyymmdd = Combine((Word(nums,exact=4)|Word(nums,exact=2))+
- ('/'+Word(nums,exact=2))*2)
-hhmmss = Combine(Word(nums,exact=2)+(':'+Word(nums,exact=2))*2)
-dateRef = oneOf(list("0123456"))("weekday") + yyyymmdd("date") + \
- hhmmss("time")
+yyyymmdd = Combine(
+ (Word(nums, exact=4) | Word(nums, exact=2)) + ("/" + Word(nums, exact=2)) * 2
+)
+hhmmss = Combine(Word(nums, exact=2) + (":" + Word(nums, exact=2)) * 2)
+dateRef = oneOf(list("0123456"))("weekday") + yyyymmdd("date") + hhmmss("time")
+
def utcToLocalTime(tokens):
- utctime = datetime.datetime.strptime("%(date)s %(time)s" % tokens,
- "%Y/%m/%d %H:%M:%S")
- localtime = utctime-datetime.timedelta(0,time.timezone,0)
- tokens["utcdate"],tokens["utctime"] = tokens["date"],tokens["time"]
- tokens["localdate"],tokens["localtime"] = str(localtime).split()
+ utctime = datetime.datetime.strptime(
+ "%(date)s %(time)s" % tokens, "%Y/%m/%d %H:%M:%S"
+ )
+ localtime = utctime - datetime.timedelta(0, time.timezone, 0)
+ tokens["utcdate"], tokens["utctime"] = tokens["date"], tokens["time"]
+ tokens["localdate"], tokens["localtime"] = str(localtime).split()
del tokens["date"]
del tokens["time"]
+
+
dateRef.setParseAction(utcToLocalTime)
startsStmt = "starts" + dateRef + SEMI
@@ -76,12 +80,18 @@ hdwStmt = "hardware" + hdwType("type") + macAddress("mac") + SEMI
uidStmt = "uid" + QuotedString('"')("uid") + SEMI
bindingStmt = "binding" + Word(alphanums) + Word(alphanums) + SEMI
-leaseStatement = startsStmt | endsStmt | tstpStmt | tsfpStmt | hdwStmt | \
- uidStmt | bindingStmt
-leaseDef = "lease" + ipAddress("ipaddress") + LBRACE + \
- Dict(ZeroOrMore(Group(leaseStatement))) + RBRACE
+leaseStatement = (
+ startsStmt | endsStmt | tstpStmt | tsfpStmt | hdwStmt | uidStmt | bindingStmt
+)
+leaseDef = (
+ "lease"
+ + ipAddress("ipaddress")
+ + LBRACE
+ + Dict(ZeroOrMore(Group(leaseStatement)))
+ + RBRACE
+)
for lease in leaseDef.searchString(sample):
print(lease.dump())
- print(lease.ipaddress,'->',lease.hardware.mac)
+ print(lease.ipaddress, "->", lease.hardware.mac)
print()