Siêu dữ liệu Python-Markdown

Các trường được xác định trong thông số kỹ thuật sau phải được coi là hợp lệ, đầy đủ và không thể thay đổi. Các trường bắt buộc là

  • re.sub[r"[-_.]+", "-", name].lower[]
    
    3

  • re.sub[r"[-_.]+", "-", name].lower[]
    
    4

  • re.sub[r"[-_.]+", "-", name].lower[]
    
    5

Tất cả các trường khác là tùy chọn

Định dạng tệp chuẩn cho siêu dữ liệu [bao gồm trong bánh xecác dự án đã cài đặt] is based on the format of email headers. However, email formats have been revised several times, and exactly which email RFC applies to packaging metadata is not specified. In the absence of a precise definition, the practical standard is set by what the standard library module can parse using the policy.

Bất cứ khi nào siêu dữ liệu được tuần tự hóa thành luồng byte [ví dụ: để lưu vào tệp], các chuỗi phải được tuần tự hóa bằng cách sử dụng mã hóa UTF-8

Mặc dù PEP 566 đã xác định cách chuyển đổi siêu dữ liệu thành từ điển tương thích với JSON, cách này vẫn chưa được sử dụng làm định dạng trao đổi tiêu chuẩn. Nhu cầu về các công cụ để hoạt động với các gói hiện có trị giá nhiều năm khiến việc chuyển sang định dạng mới trở nên khó khăn

Ghi chú

Giải thích siêu dữ liệu cũ. Trong PEP 566, đặc tả định dạng trường của bộ xác định phiên bản đã được nới lỏng để chấp nhận cú pháp được sử dụng bởi các công cụ xuất bản phổ biến [cụ thể là để loại bỏ yêu cầu rằng các bộ xác định phiên bản phải được bao quanh bởi dấu ngoặc đơn]. Người tiêu dùng siêu dữ liệu có thể muốn sử dụng các quy tắc định dạng thoải mái hơn ngay cả đối với các tệp siêu dữ liệu trên danh nghĩa nhỏ hơn phiên bản 2. 1

nội dung

Mới trong phiên bản 1. 0

Phiên bản của định dạng tập tin; . 0”, “1. 1”, “1. 2”, “2. 1”, “2. 2” và “2. 3”

Các công cụ tự động sử dụng siêu dữ liệu NÊN cảnh báo nếu

re.sub[r"[-_.]+", "-", name].lower[]
8 lớn hơn phiên bản cao nhất mà chúng hỗ trợ và PHẢI thất bại nếu
re.sub[r"[-_.]+", "-", name].lower[]
8 có phiên bản chính lớn hơn phiên bản cao nhất mà chúng hỗ trợ [như được mô tả trong PEP 440, phiên bản chính là giá trị trước dấu chấm đầu tiên

Để có khả năng tương thích rộng hơn, các công cụ xây dựng CÓ THỂ chọn tạo siêu dữ liệu phân phối bằng phiên bản siêu dữ liệu thấp nhất bao gồm tất cả các trường cần thiết

Thí dụ

Metadata-Version: 2.3

Mới trong phiên bản 1. 0

Đã thay đổi trong phiên bản 2. 1. Đã thêm các hạn chế bổ sung về định dạng từ PEP 508

Tên phân phối. Trường tên là định danh chính cho phân phối. Tên hợp lệ chỉ bao gồm các chữ cái và số ASCII, dấu chấm, dấu gạch dưới và dấu gạch nối. Nó phải bắt đầu và kết thúc bằng một chữ cái hoặc số. Tên phân phối được giới hạn ở những tên phù hợp với biểu thức chính quy sau [chạy với

Version: 1.0a2
0]

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$

Thí dụ

________số 8_______

Để chuẩn hóa tên phân phối cho mục đích so sánh, nó phải được viết thường với tất cả các ký tự

Version: 1.0a2
1,
Version: 1.0a2
2 hoặc
Version: 1.0a2
3 được thay thế bằng một ký tự
Version: 1.0a2
2. Điều này có thể được thực hiện bằng cách sử dụng đoạn mã sau [như được chỉ định trong PEP 503]

re.sub[r"[-_.]+", "-", name].lower[]

Mới trong phiên bản 1. 0

Một chuỗi chứa số phiên bản của bản phân phối. Trường này phải ở định dạng được chỉ định trong PEP 440

Thí dụ

Version: 1.0a2

Mới trong phiên bản 2. 2

Một chuỗi chứa tên của một trường siêu dữ liệu cốt lõi khác. Tên trường

re.sub[r"[-_.]+", "-", name].lower[]
4,
re.sub[r"[-_.]+", "-", name].lower[]
5 và
re.sub[r"[-_.]+", "-", name].lower[]
3 có thể không được chỉ định trong trường này

Khi được tìm thấy trong siêu dữ liệu của phân phối nguồn, các quy tắc sau sẽ được áp dụng

  1. Nếu một trường không được đánh dấu là

    Version: 1.0a2
    
    8, thì giá trị của trường trong bất kỳ bánh xe nào được tạo từ sdist PHẢI khớp với giá trị trong sdist. Nếu trường không có trong sdist và không được đánh dấu là
    Version: 1.0a2
    
    8, thì nó KHÔNG ĐƯỢC có trong bánh xe

  2. Nếu một trường được đánh dấu là

    Version: 1.0a2
    
    8, nó có thể chứa bất kỳ giá trị hợp lệ nào trong một bánh xe được tạo từ sdist [bao gồm cả việc không có mặt]

Nếu phiên bản siêu dữ liệu sdist cũ hơn phiên bản 2. 2, thì tất cả các trường phải được xử lý như thể chúng được chỉ định bằng

Version: 1.0a2
8 [i. e. không có hạn chế đặc biệt nào đối với siêu dữ liệu của bánh xe được tạo từ sdist]

Trong bất kỳ ngữ cảnh nào khác ngoài phân phối nguồn,

Version: 1.0a2
8 chỉ dành cho thông tin và cho biết rằng giá trị trường được tính toán tại thời điểm xây dựng bánh xe và có thể không giống với giá trị trong sdist hoặc trong các bánh xe khác cho dự án

Chi tiết đầy đủ về ngữ nghĩa của

Version: 1.0a2
8 được mô tả trong PEP 643

Mới trong phiên bản 1. 0

Thông số kỹ thuật của Nền tảng mô tả một hệ điều hành được hỗ trợ bởi bản phân phối không được liệt kê trong bộ phân loại Trove “Hệ điều hành”. Xem “Phân loại” bên dưới

ví dụ

Platform: ObscureUnix
Platform: RareDOS

Mới trong phiên bản 1. 1

Các bản phân phối nhị phân chứa tệp PKG-INFO sẽ sử dụng trường Nền tảng được hỗ trợ trong siêu dữ liệu của chúng để chỉ định HĐH và CPU mà bản phân phối nhị phân được biên dịch. Ngữ nghĩa của trường Nền tảng được hỗ trợ không được chỉ định trong PEP này

Thí dụ

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791

Mới trong phiên bản 1. 0

Một bản tóm tắt một dòng về những gì phân phối làm

Thí dụ

Summary: A module for collecting votes from beagles.

Mới trong phiên bản 1. 0

Đã thay đổi trong phiên bản 2. 1. Trường này có thể được chỉ định trong nội dung thư thay thế.

Mô tả dài hơn về bản phân phối có thể kéo dài đến một số đoạn văn. Phần mềm xử lý siêu dữ liệu không được sử dụng bất kỳ kích thước tối đa nào cho trường này, mặc dù mọi người không nên đưa hướng dẫn sử dụng của họ vào phần mô tả

Nội dung của trường này có thể được viết bằng cách sử dụng đánh dấu reStructuredText. Đối với các chương trình hoạt động với siêu dữ liệu, việc hỗ trợ đánh dấu là tùy chọn; . Điều này có nghĩa là các tác giả nên thận trọng trong cách đánh dấu mà họ sử dụng

Để hỗ trợ các dòng trống và dòng có thụt đầu dòng đối với định dạng RFC 822, bất kỳ ký tự CRLF nào cũng phải có 7 dấu cách theo sau dấu gạch ngang [“. ”] ký tự. Do đó, trường Mô tả được mã hóa thành trường được gấp lại mà trình phân tích cú pháp RFC822 có thể diễn giải

Thí dụ

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |

Mã hóa này ngụ ý rằng bất kỳ sự xuất hiện nào của CRLF theo sau bởi 7 khoảng trắng và ký tự ống phải được thay thế bằng một CRLF duy nhất khi trường được mở ra bằng đầu đọc RFC822

Ngoài ra, thay vào đó, mô tả của bản phân phối có thể được cung cấp trong phần nội dung thư [i. e. , sau một dòng hoàn toàn trống theo sau các tiêu đề, không cần thụt lề hoặc định dạng đặc biệt khác]

Mới trong phiên bản 2. 1

Một chuỗi nêu rõ cú pháp đánh dấu [nếu có] được sử dụng trong mô tả của bản phân phối, để các công cụ có thể hiển thị mô tả một cách thông minh

Trước đây, PyPI đã hỗ trợ các mô tả ở dạng văn bản thuần túy và cấu trúc lại văn bản [reST] và có thể hiển thị reST thành HTML. Tuy nhiên, các tác giả phân phối thường viết mô tả trong Markdown [RFC 7763] vì nhiều trang web lưu trữ mã hiển thị Markdown README và các tác giả sẽ sử dụng lại tệp cho mô tả. PyPI không nhận ra định dạng và do đó không thể hiển thị mô tả chính xác. Điều này dẫn đến nhiều gói trên PyPI có mô tả được hiển thị kém khi Markdown được để ở dạng văn bản thuần túy hoặc tệ hơn, được cố gắng hiển thị dưới dạng reST. Trường này cho phép tác giả phân phối chỉ định định dạng mô tả của họ, mở ra khả năng cho PyPI và các công cụ khác có thể hiển thị Markdown và các định dạng khác

Định dạng của trường này giống với tiêu đề

Platform: ObscureUnix
Platform: RareDOS
4 trong HTTP [i. e. RFC 1341]. Tóm lại, điều này có nghĩa là nó có một phần
Platform: ObscureUnix
Platform: RareDOS
5 và sau đó nó có thể có một số tham số tùy chọn

Sự sắp xếp

Description-Content-Type: /; charset=[; = ...]

Phần

Platform: ObscureUnix
Platform: RareDOS
5 chỉ có một vài giá trị pháp lý

  • Platform: ObscureUnix
    Platform: RareDOS
    
    7

  • Platform: ObscureUnix
    Platform: RareDOS
    
    8

  • Platform: ObscureUnix
    Platform: RareDOS
    
    9

Tham số

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
0 có thể được sử dụng để chỉ định mã hóa ký tự của mô tả. Giá trị pháp lý duy nhất là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
1. Nếu bỏ qua, nó được coi là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
1

Các tham số khác có thể dành riêng cho loại phụ đã chọn. Ví dụ: đối với loại phụ

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
3, có một tham số tùy chọn
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
4 cho phép chỉ định biến thể của Markdown đang sử dụng [mặc định là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
5 nếu không được chỉ định]. Hiện tại, hai biến thể được công nhận

  • Supported-Platform: RedHat 7.2
    Supported-Platform: i386-win32-2791
    
    5 cho

  • Supported-Platform: RedHat 7.2
    Supported-Platform: i386-win32-2791
    
    7 cho

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
0

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
1

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
2

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
3

Nếu

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
8 không được chỉ định, thì các ứng dụng nên cố gắng hiển thị nó dưới dạng
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
9 và quay trở lại
Platform: ObscureUnix
Platform: RareDOS
7 nếu nó không hợp lệ đầu tiên

Nếu

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
8 là một giá trị không được nhận dạng, thì loại nội dung giả định là
Platform: ObscureUnix
Platform: RareDOS
7 [Mặc dù PyPI có thể sẽ từ chối bất kỳ nội dung nào có giá trị không được nhận dạng]

Nếu

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
8 là
Platform: ObscureUnix
Platform: RareDOS
9 và
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
4 không được chỉ định hoặc được đặt thành một giá trị không được công nhận, thì
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
4 giả định là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
5

Vì vậy, đối với ví dụ cuối cùng ở trên,

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
0 mặc định là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
1 và
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
4 mặc định là
Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791
5 và do đó, nó tương đương với ví dụ trước đó

Mới trong phiên bản 1. 0

Danh sách các từ khóa bổ sung, được phân tách bằng dấu phẩy, được sử dụng để hỗ trợ tìm kiếm bản phân phối trong danh mục lớn hơn

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
4

Ghi chú

Thông số kỹ thuật trước đây hiển thị các từ khóa được phân tách bằng dấu cách, nhưng distutils và setuptools đã triển khai nó bằng dấu phẩy. Những công cụ này đã được sử dụng rất rộng rãi trong nhiều năm, vì vậy việc cập nhật thông số kỹ thuật để phù hợp với tiêu chuẩn thực tế sẽ dễ dàng hơn.

Mới trong phiên bản 1. 0

Một chuỗi chứa URL cho trang chủ của bản phân phối

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
5

Mới trong phiên bản 1. 1

Một chuỗi chứa URL mà phiên bản phân phối này có thể được tải xuống từ đó. [Điều này có nghĩa là URL không được giống như “…/BeagleVote-latest. tgz”, nhưng thay vào đó phải là “…/BeagleVote-0. 45. tgz”. ]

Mới trong phiên bản 1. 0

Một chuỗi chứa tên tác giả ở mức tối thiểu;

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
6

Mới trong phiên bản 1. 0

Một chuỗi chứa địa chỉ e-mail của tác giả. Nó có thể chứa tên và địa chỉ email ở dạng hợp pháp cho tiêu đề RFC-822

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
2

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
7

Theo RFC-822, trường này có thể chứa nhiều địa chỉ email được phân tách bằng dấu phẩy

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
8

Mới trong phiên bản 1. 2

Một chuỗi chứa tên của người bảo trì ở mức tối thiểu;

Lưu ý rằng trường này được thiết kế để sử dụng khi một dự án đang được duy trì bởi một người nào đó không phải là tác giả ban đầu. nó nên được bỏ qua nếu nó giống hệt với

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
3

Thí dụ

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
9

Mới trong phiên bản 1. 2

Một chuỗi chứa địa chỉ e-mail của người bảo trì. Nó có thể chứa tên và địa chỉ email ở dạng hợp pháp cho tiêu đề RFC-822

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
2

Lưu ý rằng trường này được thiết kế để sử dụng khi một dự án đang được duy trì bởi một người nào đó không phải là tác giả ban đầu. nó nên được bỏ qua nếu nó giống hệt với

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
5

Thí dụ

Name: BeagleVote
0

Theo RFC-822, trường này có thể chứa nhiều địa chỉ email được phân tách bằng dấu phẩy

Name: BeagleVote
1

Mới trong phiên bản 1. 0

Văn bản cho biết giấy phép bao gồm phân phối trong đó giấy phép không phải là lựa chọn từ bộ phân loại Trove "Giấy phép". Xem bên dưới. Trường này cũng có thể được sử dụng để chỉ định một phiên bản giấy phép cụ thể được đặt tên thông qua trường

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
6 hoặc để chỉ ra một biến thể hoặc ngoại lệ đối với giấy phép đó

ví dụ

Name: BeagleVote
2

Mới trong phiên bản 1. 1

Mỗi mục nhập là một chuỗi đưa ra một giá trị phân loại duy nhất cho phân phối. Các trình phân loại được mô tả trong PEP 301 và Chỉ mục gói Python xuất bản một danh sách động các trình phân loại hiện được xác định

Trường này có thể được theo sau bởi một điểm đánh dấu môi trường sau dấu chấm phẩy

ví dụ

Name: BeagleVote
3

Mới trong phiên bản 1. 2

Đã thay đổi trong phiên bản 2. 1. Đặc tả định dạng trường được nới lỏng để chấp nhận cú pháp được sử dụng bởi các công cụ xuất bản phổ biến.

Mỗi mục chứa một chuỗi đặt tên cho một số dự án distutils khác theo yêu cầu của bản phân phối này

Định dạng của một chuỗi yêu cầu chứa từ một đến bốn phần

  • Tên dự án, có cùng định dạng với trường

    Description: This project provides powerful math functions
            |For example, you can use `sum[]` to sum numbers:
            |
            |Example::
            |
            |    >>> sum[1, 2]
            |    3
            |
    
    7. Phần bắt buộc duy nhất

  • Danh sách các tên 'thêm' được phân tách bằng dấu phẩy. Chúng được xác định bởi dự án bắt buộc, đề cập đến các tính năng cụ thể có thể cần phụ thuộc thêm. Tên PHẢI phù hợp với các hạn chế được chỉ định bởi trường

    Description: This project provides powerful math functions
            |For example, you can use `sum[]` to sum numbers:
            |
            |Example::
            |
            |    >>> sum[1, 2]
            |    3
            |
    
    8

  • Trình xác định phiên bản. Các công cụ phân tích cú pháp định dạng phải chấp nhận các dấu ngoặc đơn tùy chọn xung quanh điều này, nhưng các công cụ tạo ra nó không được sử dụng các dấu ngoặc đơn

  • Một điểm đánh dấu môi trường sau dấu chấm phẩy. Điều này có nghĩa là yêu cầu chỉ cần thiết trong các điều kiện được chỉ định

Xem PEP 508 để biết đầy đủ chi tiết về định dạng được phép

Tên dự án phải tương ứng với các tên được tìm thấy trên Chỉ mục gói Python

Trình xác định phiên bản phải tuân theo các quy tắc được mô tả trong Trình xác định phiên bản .

ví dụ

Name: BeagleVote
4

Mới trong phiên bản 1. 2

Trường này chỉ định [các] phiên bản Python mà bản phân phối được đảm bảo tương thích với. Các công cụ cài đặt có thể xem xét điều này khi chọn phiên bản nào của dự án sẽ cài đặt

Giá trị phải ở định dạng được chỉ định trong Thông số phiên bản .

Trường này không thể được theo sau bởi một điểm đánh dấu môi trường

ví dụ

Name: BeagleVote
5

Mới trong phiên bản 1. 2

Đã thay đổi trong phiên bản 2. 1. Đặc tả định dạng trường được nới lỏng để chấp nhận cú pháp được sử dụng bởi các công cụ xuất bản phổ biến.

Mỗi mục chứa một chuỗi mô tả một số phụ thuộc trong hệ thống mà bản phân phối sẽ được sử dụng. Trường này nhằm phục vụ như một gợi ý cho những người bảo trì dự án hạ nguồn và không có ngữ nghĩa nào có ý nghĩa đối với phân phối

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
9

Định dạng của chuỗi yêu cầu là tên của một phụ thuộc bên ngoài, tùy ý theo sau là khai báo phiên bản trong ngoặc đơn

Trường này có thể được theo sau bởi một điểm đánh dấu môi trường sau dấu chấm phẩy

Bởi vì chúng đề cập đến các bản phát hành phần mềm không phải của Python, số phiên bản cho trường này không bắt buộc phải tuân theo định dạng được chỉ định trong PEP 440. chúng phải tương ứng với sơ đồ phiên bản được sử dụng bởi phụ thuộc bên ngoài

Lưu ý rằng không có quy tắc cụ thể nào về các chuỗi sẽ được sử dụng

ví dụ

Name: BeagleVote
6

Mới trong phiên bản 1. 2

Một chuỗi chứa URL có thể duyệt cho dự án và nhãn cho nó, được phân tách bằng dấu phẩy

Thí dụ

Name: BeagleVote
7

Nhãn là văn bản miễn phí giới hạn trong 32 ký tự

Mới trong phiên bản 2. 1

Đã thay đổi trong phiên bản 2. 3. PEP 685 hạn chế các giá trị hợp lệ phải rõ ràng [i. e. không cần chuẩn hóa]. Đối với các phiên bản siêu dữ liệu cũ hơn, các hạn chế về giá trị đã được đưa ra phù hợp với

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
7 và các quy tắc chuẩn hóa đã được đưa ra.

Một chuỗi chứa tên của một tính năng tùy chọn. Tên hợp lệ chỉ bao gồm các chữ cái ASCII viết thường, số ASCII và dấu gạch nối. Nó phải bắt đầu và kết thúc bằng một chữ cái hoặc số. Dấu gạch nối không được theo sau bởi dấu gạch nối khác. Tên được giới hạn ở những tên phù hợp với biểu thức chính quy sau [đảm bảo tính rõ ràng]

Name: BeagleVote
8

Tên được chỉ định có thể được sử dụng để tạo điều kiện phụ thuộc vào việc liệu tính năng tùy chọn có được yêu cầu hay không

Thí dụ

Name: BeagleVote
9

Bản phân phối thứ hai yêu cầu một phụ thuộc tùy chọn bằng cách đặt nó bên trong dấu ngoặc vuông và có thể yêu cầu nhiều tính năng bằng cách tách chúng bằng dấu phẩy [,]. Các yêu cầu được đánh giá cho từng tính năng được yêu cầu và được thêm vào tập hợp các yêu cầu cho bản phân phối

Thí dụ

re.sub[r"[-_.]+", "-", name].lower[]
0

Hai tên tính năng

Description-Content-Type: /; charset=[; = ...]
1 và
Description-Content-Type: /; charset=[; = ...]
2 được dành riêng để đánh dấu các phụ thuộc cần thiết để chạy thử nghiệm tự động và tạo tài liệu tương ứng

Việc chỉ định

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
8 mà không tham khảo nó trong bất kỳ
Description-Content-Type: /; charset=[; = ...]
4 nào là hợp pháp

Khi ghi dữ liệu cho các phiên bản siêu dữ liệu cũ hơn, các tên PHẢI được chuẩn hóa theo cùng quy tắc được sử dụng cho trường

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
7 khi thực hiện so sánh. Công cụ ghi siêu dữ liệu PHẢI phát sinh lỗi nếu hai mục nhập
Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
8 xung đột sau khi được chuẩn hóa

Khi đọc dữ liệu cho các phiên bản siêu dữ liệu cũ hơn, các công cụ NÊN ​​cảnh báo khi các giá trị cho trường này không hợp lệ trong các phiên bản siêu dữ liệu mới hơn. Nếu một giá trị không hợp lệ theo các quy tắc cho

Description: This project provides powerful math functions
        |For example, you can use `sum[]` to sum numbers:
        |
        |Example::
        |
        |    >>> sum[1, 2]
        |    3
        |
7 trong bất kỳ phiên bản siêu dữ liệu cốt lõi nào, thì người dùng NÊN được cảnh báo và bỏ qua giá trị đó để tránh sự mơ hồ. Các công cụ CÓ THỂ chọn phát sinh lỗi khi đọc tên không hợp lệ đối với các phiên bản siêu dữ liệu cũ hơn

Các trường trong phần này hiện hiếm khi được sử dụng vì thiết kế của chúng được lấy cảm hứng từ các cơ chế có thể so sánh được trong các hệ thống quản lý gói Linux và hoàn toàn không rõ ràng về cách các công cụ nên diễn giải chúng trong ngữ cảnh của một máy chủ chỉ mục mở chẳng hạn như PyPI

Do đó, các công cụ cài đặt phổ biến hoàn toàn bỏ qua chúng, điều này có nghĩa là có rất ít động cơ khuyến khích các nhà xuất bản gói cài đặt chúng một cách thích hợp. Tuy nhiên, chúng được giữ lại trong đặc tả siêu dữ liệu vì chúng vẫn có khả năng hữu ích cho mục đích cung cấp thông tin và cũng có thể được sử dụng cho mục đích dự định ban đầu của chúng khi kết hợp với kho lưu trữ gói được quản lý

Mới trong phiên bản 1. 2

Đã thay đổi trong phiên bản 2. 1. Đặc tả định dạng trường được nới lỏng để chấp nhận cú pháp được sử dụng bởi các công cụ xuất bản phổ biến.

Mỗi mục chứa một chuỗi đặt tên dự án Distutils có trong bản phân phối này. Trường này phải bao gồm dự án được xác định trong trường

re.sub[r"[-_.]+", "-", name].lower[]
4, theo sau là phiên bản. Tên [Phiên bản]

Một bản phân phối có thể cung cấp tên bổ sung, e. g. để chỉ ra rằng nhiều dự án đã được nhóm lại với nhau. Chẳng hạn, các bản phân phối nguồn của dự án

Description-Content-Type: /; charset=[; = ...]
9 trong lịch sử đã bao gồm dự án
^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
00, dự án này hiện có sẵn dưới dạng một bản phân phối riêng biệt. Cài đặt phân phối nguồn như vậy đáp ứng các yêu cầu cho cả
Description-Content-Type: /; charset=[; = ...]
9 và
^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
00

Một bản phân phối cũng có thể cung cấp tên dự án “ảo”, tên này không tương ứng với bất kỳ dự án được phân phối riêng nào. tên như vậy có thể được sử dụng để biểu thị một khả năng trừu tượng có thể được cung cấp bởi một trong nhiều dự án. e. g. , nhiều dự án có thể cung cấp các ràng buộc RDBMS để ORM nhất định sử dụng. mỗi dự án có thể tuyên bố rằng nó cung cấp

^[[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]]$
03, cho phép các dự án khác chỉ phụ thuộc vào việc có nhiều nhất một trong số chúng được cài đặt

Khai báo phiên bản có thể được cung cấp và phải tuân theo các quy tắc được mô tả trong Thông số phiên bản . Số phiên bản của bản phân phối sẽ được ngụ ý nếu không được chỉ định.

Trường này có thể được theo sau bởi một điểm đánh dấu môi trường sau dấu chấm phẩy

ví dụ

re.sub[r"[-_.]+", "-", name].lower[]
1

Mới trong phiên bản 1. 2

Đã thay đổi trong phiên bản 2. 1. Đặc tả định dạng trường được nới lỏng để chấp nhận cú pháp được sử dụng bởi các công cụ xuất bản phổ biến.

Mỗi mục chứa một chuỗi mô tả bản phân phối của dự án distutils mà bản phân phối này làm cho lỗi thời, nghĩa là không nên cài đặt hai dự án cùng một lúc

Có thể cung cấp các khai báo phiên bản. Số phiên bản phải ở định dạng được chỉ định trong Thông số phiên bản .

Trường này có thể được theo sau bởi một điểm đánh dấu môi trường sau dấu chấm phẩy

Việc sử dụng phổ biến nhất của trường này sẽ là trong trường hợp tên dự án thay đổi, e. g. gogon 2. 3 được gộp vào Torqued Python 1. 0. Khi bạn cài đặt Torqued Python, bản phân phối Gorgon sẽ bị xóa

Siêu dữ liệu trong markdown là gì?

Có thể bao gồm siêu dữ liệu đặc biệt ở đầu tài liệu MultiMarkdown, chẳng hạn như tiêu đề, tác giả, v.v. . Thông tin này sau đó có thể được sử dụng để kiểm soát cách MultiMarkdown xử lý tài liệu hoặc có thể được sử dụng ở một số định dạng đầu ra theo những cách đặc biệt.

Siêu dữ liệu Python là gì?

siêu dữ liệu, là một mô-đun Python để truy cập và quản lý siêu dữ liệu của một mục . Bạn có thể khám phá thông tin mô tả bản đồ và dữ liệu của mình và tự động hóa quy trình làm việc của mình, đặc biệt là để quản lý siêu dữ liệu không gian địa lý tuân thủ tiêu chuẩn.

Làm cách nào để cài đặt tiện ích mở rộng Python Markdown?

Cài đặt dễ dàng với pip. .
$ pip cài đặt phần mở rộng pymdown. Nếu bạn muốn cài đặt thủ công, hãy chạy
thiết lập $ trăn. xây dựng py $ thiết lập python. cài đặt py. Sau khi cài đặt, bạn sẽ có thể truy cập các tiện ích mở rộng trong Python Markdown dưới không gian tên pymdownx. .
$ pip cài đặt --editable

Chủ Đề