Hướng dẫn python-hcl2 parser - trình phân tích cú pháp python-hcl2

Mô tả dự án

Hướng dẫn python-hcl2 parser - trình phân tích cú pháp python-hcl2

Một trình phân tích cú pháp cho HCL2 được viết bằng Python bằng cách sử dụng Lark. Trình phân tích cú pháp này chỉ hỗ trợ HCL2 và không tương thích ngược với HCl V1. Nó có thể được sử dụng để phân tích bất kỳ tệp cấu hình HCL2 nào như Terraform.

Về khuếch đại

Amplify xây dựng các sản phẩm giáo dục kỹ thuật số sáng tạo và hấp dẫn, trao quyền cho giáo viên và học sinh trên cả nước. Chúng tôi có một lịch sử lâu dài với tư cách là nhà đổi mới hàng đầu trong giáo dục K -12 - và đã được mô tả là công ty công nghệ tốt nhất trong giáo dục và là công ty giáo dục tốt nhất về công nghệ. Mặc dù những người khác cố gắng thu hẹp trải nghiệm học tập vào công nghệ, chúng tôi sử dụng công nghệ để mở rộng những gì có thể trong các lớp học thực sự với học sinh và giáo viên thực sự.
the technology, we use technology to expand what is possible in real classrooms with real students and teachers.

Tìm hiểu thêm tại https://www.amplify.com

Bắt đầu

Điều kiện tiên quyết

Python-HCl2 yêu cầu Python 3.6.0 trở lên để chạy.

Cài đặt

Gói này có thể được cài đặt bằng pip

pip3 install python-hcl2

Cách sử dụng

import hcl2
with open('foo.tf', 'r') as file:
    dict = hcl2.load(file)

Xây dựng từ nguồn

Để phát triển, tox>=2.9.1 được khuyến khích.

Chạy thử nghiệm

Python-HCl2 sử dụng tox. Bạn sẽ cần cài đặt TOX với pip install tox. Chạy tox sẽ tự động thực thi các linter cũng như các thử nghiệm đơn vị.

Bạn cũng có thể chạy chúng riêng lẻ với đối số -e.

Ví dụ: tox -e py37-unit sẽ chạy các bài kiểm tra đơn vị cho Python 3.7

Để xem tất cả các tùy chọn có sẵn, chạy tox -l.

Tiết lộ có trách nhiệm

Nếu bạn có bất kỳ vấn đề bảo mật nào để báo cáo, liên hệ với các nhà bảo trì dự án một cách riêng tư. Bạn có thể liên hệ với chúng tôi tại Mailto:

Đóng góp

Chúng tôi hoan nghênh các yêu cầu kéo! Để yêu cầu kéo của bạn được chấp nhận một cách suôn sẻ, chúng tôi đề nghị bạn:

  1. Đối với bất kỳ thay đổi khá lớn, trước tiên hãy mở một vấn đề GitHub để thảo luận về ý tưởng của bạn.
  2. Tạo một yêu cầu kéo. Giải thích lý do tại sao bạn muốn thực hiện thay đổi và những gì nó cho.

Chúng tôi sẽ cố gắng trả lời bất kỳ PR PR kịp thời.

Tải tập tin

Tải xuống tệp cho nền tảng của bạn. Nếu bạn không chắc chắn nên chọn cái nào, hãy tìm hiểu thêm về việc cài đặt các gói.

Phân phối nguồn

Permalink

Không thể lấy lại những người đóng góp tại thời điểm này

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây.Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn.Tìm hiểu thêm về các ký tự unicode hai chiều

"" "API sẽ được tiếp xúc với người dùng của gói này" ""
TừStypingImportTextio typing import TextIO
fromhcl2.parserimporthcl2 hcl2.parser import hcl2
DEFLOAD (Tệp: Textio) -> Dict: load(file: TextIO) -> dict:
"" "Tải tệp hcl2" ""
RENSELOADS (FILE.READ ()) loads(file.read())
DEFLOADS (văn bản: str) -> dict: loads(text: str) -> dict:
"" "Tải HCl2 từ chuỗi" ""
# Phụ lục dòng mới như một cách giải quyết cho https://github.com/lark-parser/lark/issues/237
# Lark không hỗ trợ mã thông báo EOF để ngữ pháp của chúng tôi không thể tìm kiếm "dòng mới hoặc kết thúc tệp"
# Điều này có nghĩa là tất cả các khối phải kết thúc trong một dòng mới ngay cả khi tệp kết thúc
# Nối một dòng mới như một sửa chữa tạm thời
returnHCl2.parse (Text+"\ n") hcl2.parse(text + "\n")