Files
endoflife-date-release-data/src/eks.py
Marc Wrobel b65b5ad4ee Cleanup code (#37)
* [apple,distrowatch,pypi] Remove unused imports

* [maven] use snake_case for variable names

* [eks,palo-alto-networks] Rename variables shadowing names from outer scopes

* [eks,palo-alto-networks] Remove unused variables

* [apple,haproxy,palo-alto-networks,rhel,ros,unrealircd] Rename variables shadowing built-in names
2022-12-14 09:20:45 +05:30

36 lines
1.3 KiB
Python

import urllib.request
import datetime
import markdown
import re
import json
from datetime import datetime
from bs4 import BeautifulSoup
URL = "https://raw.githubusercontent.com/awsdocs/amazon-eks-user-guide/master/doc_source/platform-versions.md"
REGEX = r"^(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)$"
def parse_platforms_page():
all_versions = {}
with urllib.request.urlopen(URL, data=None, timeout=5) as contents:
html = markdown.markdown(contents.read().decode("utf-8"), extensions=["tables"])
soup = BeautifulSoup(html, features="html5lib")
for tr in soup.findAll("tr"):
td = tr.find("td")
if td and re.match(REGEX, td.text):
data = tr.findAll("td")
date = data[-1].text
if len(date) > 0:
d = datetime.strptime(date, "%B %d, %Y").strftime("%Y-%m-%d")
k8s_version = ".".join(data[0].text.split(".")[:-1])
eks_version = data[1].text.replace(".", "-")
version = "%s-%s" % (k8s_version, eks_version)
all_versions[version] = d
return all_versions
if __name__ == "__main__":
versions = parse_platforms_page()
with open("releases/eks.json", "w") as f:
f.write(json.dumps(versions, indent=2))