2015-01-10 39 views
7

Tôi có một từ điển trong mã nguồn dự án Python mô tả các giá trị cấu hình mặc định. Từ điển khá dài. Tôi muốn xem từ điển trong tài liệu Sphinx ở định dạng khác bên cạnh "Xem nguồn", để mọi người có thể nhanh chóng kiểm tra các giá trị mặc định.Hiển thị dữ liệu từ điển trong tài liệu Sphinx

Nhân sư có cung cấp các tùy chọn để định dạng các biến giống từ điển cho định dạng có thể đọc được khi được sử dụng với Sphinx autodoc không? Tôi hiện đang sử dụng .. automodule:: để loại bỏ toàn bộ mô-đun và tôi lấy từ điển dưới dạng một chuỗi dài trong tài liệu (không có dòng mới, in đẹp, bất kỳ thứ gì), về cơ bản không thể đọc được.

  • Liệu Sphinx cung cấp công cụ để in ra giá trị của mã nguồn biến cá nhân

  • Có in khá sẵn?

+0

@MarianaB. - liên kết dẫn đến lỗi cho phép bị từ chối. Có phương án công cộng nào không? – Erve1879

+1

xin lỗi, tôi không tìm thấy liên kết công khai. Tôi đã xóa nhận xét của mình để tránh nhầm lẫn. –

Trả lời

5

Điều này có thể không phải là giải pháp thanh lịch nhất (sẽ tốt hơn nhiều để viết một chỉ thị thích hợp để sản xuất một cuốn từ điển khá-in), nhưng hoạt động này cho bây giờ:

Thêm chỉ thị tùy chỉnh exec trao here đến file Sphinx conf của bạn, sau đó, trong file .rst bạn muốn in từ điển, làm một cái gì đó như thế này:

.. exec:: 
    import json 
    from some_module import some_dictionary 
    json_obj = json.dumps(some_dictionary, sort_keys=True, indent=4) 
    print '.. code-block:: JavaScript\n\n %s\n\n' % json_obj 

điều đó sẽ in ra từ điển của bạn trong một khối mã JavaScript trong tài liệu của bạn (mà tôi thấy là cách tốt nhất để kết xuất tionaries trong tài liệu).

+0

Ký tự khung '{' cuối cùng của tôi hiển thị trong khối mã. có ý tưởng nào để sửa cái này không? – jsmedmar

+0

Bạn có thể muốn thêm json_obj = json_obj [: - 1] + "}" để hiển thị {ký tự cuối cùng bên trong khối mã. – jsmedmar

3

Nếu giá trị từ điển được không tính toán và human readable như thế này FRUITS = { "Apple": "Red and Delicious", # note: eating too much orange make your hands orange "Orange": "A lot of vitamin C" } nói rằng bạn có dict trên quy định tại fruit.py bắt đầu từ dòng # 15

sau đó bạn có thể làm: .. literalinclude:: ../path-to-file/fruit.py :language: python :lines: 15- :linenos: và bạn sẽ kết Giá trị + nhận xét của con người v.v. ngay trên doc

Các vấn đề liên quan