2010-01-25 23 views
7

Đối với một gói phần mềm của tôi, tôi có một tập tin README.rst được đọc vào mô tả dài của setup.py như vậy:Làm thế nào tôi có thể làm cho long_description và README này khác nhau bằng một vài câu?

readme = open('README.rst', 'r') 
README_TEXT = readme.read() 
readme.close() 

setup(
    ... 
    long_description = README_TEXT, 
    .... 
    ) 

Bằng cách này mà tôi có thể có các tập tin README hiển thị trên của tôi github page mỗi thời gian tôi cam kết và trên pypi page mỗi lần tôi python setup.py register. Chỉ có một vấn đề. Tôi muốn trang github để nói một cái gì đó như "Tài liệu này phản ánh một phiên bản tiền phát hành của envbuilder. Đối với bản phát hành gần đây nhất, xem pypi."

Tôi chỉ có thể đặt những dòng đó trong README.rst và xóa chúng trước khi tôi python setup.py register, nhưng tôi biết rằng sẽ có lúc tôi quên xóa câu trước khi tôi chuyển sang pypi.

Tôi đang cố gắng nghĩ cách tốt nhất để tự động hóa điều này vì vậy tôi không phải lo lắng về điều đó. Ai có ý tưởng gì không? Có bất kỳ magic settools/distutils nào tôi có thể làm được không?

Trả lời

8

Bạn chỉ có thể sử dụng nhận xét ReST với một số văn bản như "chia nhỏ tại đây", sau đó chia nhỏ điều đó trong setup.py của bạn. Ian Bicking thực hiện điều đó trong virtualenv với index.txtsetup.py.

+0

Điều này đã kết thúc là những gì tôi đã làm. Cảm ơn! –

2

Bạn luôn có thể làm điều này:

GITHUB_ALERT = 'This document reflects a pre-release version...' 
readme = open('README.rst', 'r') 
README_TEXT = readme.read().replace(GITHUB_ALERT, '') 
readme.close() 

setup(
    ... 
    long_description = README_TEXT, 
    .... 
    ) 

Nhưng sau đó bạn phải giữ cho rằng GITHUB_ALERT chuỗi đồng bộ với các từ ngữ thực tế của README. Thay vào đó, hãy sử dụng cụm từ thông dụng (để khớp với một dòng bắt đầu bằng Lưu ý đối với Người dùng Github: hoặc thứ gì đó) có thể giúp bạn linh hoạt hơn một chút.

+0

Đã không nghĩ đến việc đó theo cách đó. Tôi se thử no. –

5

Một tùy chọn khác là để hoàn thành bước hoàn toàn vấn đề bằng cách thêm đoạn văn hoạt động trong cả hai môi trường: "Mã không ổn định mới nhất là trên github. Bộ ổn định mới nhất là trên pypi."

Sau khi tất cả, tại sao giả định rằng người pypi không muốn được chỉ vào github? Điều này sẽ hữu ích hơn cho cả hai đối tượng và đơn giản hóa setup.py của bạn.

+0

Có hướng dẫn cài đặt cả hai phiên bản. Nó không phải là nhiều về pypi người không muốn nhận được chỉ để github vì nó là về một người nào đó làm một 'easy_install envbuilder', sau đó nhìn vào tài liệu trên github (mà có thể cho phiên bản phát triển) và tự hỏi tại sao nó không hoạt động. Điều đó nói rằng, tôi cho rằng tôi * có thể * rõ ràng hơn một chút về nơi mà các phiên bản ổn định và không ổn định. –

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