markdown.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #
  2. # Copyright (c) 2021 Project CHIP Authors
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. #
  16. """Markdown utilities."""
  17. def read_hierified(f):
  18. """Read a markdown table in ‘hierified’ format."""
  19. line = f.readline()
  20. header = tuple((s.strip() for s in line.split('|')[1:-1]))
  21. _ = f.readline() # The line under the header.
  22. rows = []
  23. for line in f:
  24. line = line.strip()
  25. if not line:
  26. break
  27. row = []
  28. columns = line.split('|')
  29. for i in range(0, len(header)):
  30. column = columns[i + 1].strip()
  31. if not column:
  32. column = rows[-1][i] if rows else '(blank)'
  33. row.append(column)
  34. rows.append(tuple(row))
  35. return (header, rows)