Hướng dẫn python ffs - trăn ffs

=== FFS ===
ffs
===

Trợ giúp API hệ thống tập tin Python

.. Hình ảnh :: https://secure.travis-ci.org/davidmiller/ffs.png?branch=master: Alt: Build Status: Target: https://secure.travis-ci.org/davidmiller/FFS
:alt: Build Status
:target: https://secure.travis-ci.org/davidmiller/ffs

Đối phó với hệ thống tập tin trong Python là cồng kềnh. Những người trong chúng ta có một sự tham gia gần như với sự thanh lịch của API mà chúng ta sử dụng, cảm thấy rằng nó không nên theo cách này. Không phải trong Python.
emotional engagement with the elegance of the APIs we use, feel that it shouldn't
have to be this way. Not in Python.

Rationale=========
=========

Điệu nhảy này bắt đầu waaay trở lại. FRIST Có đường dẫn của Jason Orendorff, Backin 2004. Sau đó, trong 05-06 Reinhold Birkenfeld và Björn Lindqvist đã điều chỉnh nó FORPEP 355, đã cố gắng đưa một cái gì đó như thế vào thư viện tiêu chuẩn. Thẻ không bị thất bại thảm hại. Sau đó, vào năm 2007, có Unipath của Mike Orr, đã thêm bộ thử nghiệm và làm cho nó có thể thiết lập được.
in 2004. Then in 05-06 Reinhold Birkenfeld and Björn Lindqvist tweaked it for
PEP 355, which tried to get something like that into the Standard Library. The
attempt failed miserably. Then in 2007 there was Mike Orr's Unipath, which added
a test suite and made it setuptoolsable.

Phew.

Câu hỏi (ngắn): Vậy tại sao bạn lại làm lại?

Câu hỏi (theo ngụ ý): Ý tưởng đã bị Python-dev từ chối một cách vững chắc, với sự phản đối từ cộng đồng đó, và đã có một mô-đun bên thứ 3 có một công việc khá tốt của những thứ này cho những người thích điều này. Tôi quan tâm?
strong objections from that community, and there's already a 3rd party module that
does a pretty good job of this stuff for those people who like This Kind Of Thing.
Why should I care?

Trả lời (ngắn): Tên là cách thú vị hơn.

Trả lời (Ít hơn một cách): Tên là cách vui hơn. Và bốn nhân vật ít hơn để gõ. Và bạn biết, nếu bạn sẽ làm điều gì đó có thể nói là một ý tưởng tồi (TM) chống lại một cách thực sự, bạn phải ở thị trường LEA đúng cách, và trong cuộc sống của tôi ít nhất, "ít nhất là" FFS Python "đã là một cụm từ được thiết lập tốt.
And you know, if you're going to do something that's arguably a Bad Idea (TM) that
goes against the One True Way, you have to at leas market it properly, and in my life
at least, "FFS Python" is already a well established phrase.

Trả lời (Ồ, đúng, tôi chỉ nhìn lên ý nghĩa của Facugious):

Loại điều này là về API. Và các API ở ngoài đó, vẫn có thể *bebetter *. Trên thực tế, API * đã * tốt hơn trước khi tất cả các nhà điều hành quá tải đã bị đưa ra trong một nỗ lực sai lầm để đưa mọi thứ vào thư viện tiêu chuẩn.
better*. In fact, the APIs *were* better before all the operator overloading got taken
out in a misguided attempt to get the thing into the standard library.

Unipath tự xưng là ổn định kể từ năm 2007 và thậm chí chưa thấy lỗi phát hành năm 2009. Nó được sử dụng trong sản xuất bởi phần mềm Real People hoạt động thực sự. , nhưng một mình ở một vị trí để nhận các bản vá vào một gói có API ổn định trong 5 năm. Đó là sự ổn định theo phong cách kiểu dáng.
since 2009. It's used in production by Real People's software that does Real Work.
Right now, I'm not even sure what the *right* API even is, yet alone in a position to
attempt to get patches into a package that's had a stable API for 5 years. That's
Stick-A-Fork-In-It-It's-Done-style stability.

API cho lớp đường dẫn trong ffs * sẽ * thay đổi, mà không có cảnh báo khấu hao, phát hành điểm Onminor. Chết tiệt, điều này chỉ * trên * pypi ở giai đoạn này để tôi có thể kéo Itinto một hệ thống CI mà không cần phải duy trì pheeseshop của riêng mình.
minor point releases. Hell, this thing's only *on* PyPi at this stage so I can pull it
into a CI system without having to maintain my own cheeseshop.

`Docs`_

`Source`_

`Issues`_

.. _Docs: http://www.deadpansincerity.com/docs/ffs ..
.. _Source: https://github.com/davidmiller/ffs
.. _Issues: https://github.com/davidmiller/ffs/issues

History-------
-------

0,0.7.7 () ++++++++++++++++++++++ thêm .Open () cho httppath để trả về tệp như đối tượng Lá Pathadds Pathadds tranh luận về Newfile
+++++++++++++++++++++
Adds .open() to HTTPPath to return file like objects
Adds .checksum() to Path.
Adds .as_zip to base leafbranch path
Adds path argument to newfile

0,0.7.6 (tháng 2 năm 2014) ++++++++++++++++++++++ thêm hỗ trợ lưu trữ tối thiểu vào đóng góp.
+++++++++++++++++++++
Adds minimal archive support to contrib.

0,0.7.5 ++++++ Khắc phục lỗi với các hàng tiêu đề CSV khi các hàng CSV có dấu trùng/thời gian.
+++++++
Fixes bugs with CSV header rows when CSV rows have trailing commas/periods.
Uses simplejson when available.
Add the .mimetype property to Path objects

0,0.7.4 (ngày 02 tháng 5 năm 2013) ++++++++++++++++++++++ Thêm đường dẫn.ere () cho cú pháp đẹp hơn cho thư mục của tệp gọi.
+++++++++++++++++++++
Add Path.here() for a nicer syntax for the directory of the calling file.

0.0.7.3 (19 tháng 11 năm 2012) +++++++++++++++++++++++++++++++
+++++++++++++++++++++

Thêm path.newFile () và path.newDir () - phiên bản không phá hủy của thecontextManager tempfile () && tempath ()
contextmanager tempfile() && tempath()

0.0.7.2 (14 tháng 11 năm 2012) +++++++++++++++++++++ Thêm __version__ vào mô -đun chính
+++++++++++++++++++++
Add __version__ to main module

0.0.7.1 (ngày 12 tháng 10 năm 2012) +++++++++++++++++++++++++++++++
+++++++++++++++++++++

Thêm các mẫu glob vào đường dẫn (). Ls () Thêm đối số tiêu đề vào path.csv () vào các lớp hàng csv tự động
Add a header argument to Path.csv() to autocreate CSV row classes

0,0.7 (ngày 11 tháng 10 năm 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Khắc phục lỗi với Path.ls () để trẻ em được trả lại dưới dạng đối tượng đường dẫn đối tượng đối với cha mẹ.
relative to the parent.

Phơi bày path.decode (hữu ích khi sử dụng các đường dẫn làm thư mục mẫu django)

0.0.6 (tháng 10 năm 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Thêm ffs.contrib.mold cho người trợ giúp tạo khuôn mẫu.

0.0,5 (tháng 9 22 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Thêm một phương thức MV () vào path.re-rstrip (). . người đọc và nhà văn uncilyou làm điều gì đó quyết định)
Re-enable rstrip(). (Stdlib uses it e.g. shutil._basename)
Catch the case where we call Path(Path('foo')) and get recursion errors.
Add the formats module for helpers with Fileformats.
Frist entry is the Indeterminate CSV class (ducktypes as both a reader and writer until
you do something deterministic)x
Add a csv contextmanager to Path
DiskFilesystem.open() implicitly calls expanduser
Initial implementation of a HTTP path system

0.0.4.1 (ngày 12 tháng 9 năm 2012) +++++++++++++++++++++++++++++++
+++++++++++++++++++++

Sao chép: Thêm bản sao GNU CP vào NIX.ADD đối số -được ghi lại cho hệ thống tập tin CP Triển khai B
Add a GNU cp clone to nix.
Add the --recursive argument to the filesystem cp implementation
Add a cp(target) method to the Path class

Chạm vào: Khi chạm vào một đường dẫn phụ mà một số cha mẹ không tồn tại, Path (). Chạm ('cái này/that/thether.txt') sẽ tạo ra chúng và cho rằng người gọi biết tâm trí của chính họ. Điều này phù hợp với TheBeHaviour của When touching a subpath where some parents do not exist, Path().touch('this/that/theother.txt')
should create them and assume the caller knows their own mind. This is consistent with the
behaviour of << and open().

0.0.3 (tháng 9 11 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Giảm mức độ gõ vịt chuỗi xuống mức lành mạnh. Mặc dù chúng tôi kế thừa từ STR, chúng tôi bảo lãnh với thuộc tính khi chúng tôi nghĩ rằng chúng tôi đang được sử dụng cho một cái gì đó vô lý - ví dụ: Việc sử dụng lành mạnh của đường dẫn (). splutlines () là gì?
from str, we bail with AttributeErrors when we think that we're being used
for something absurd - e.g. what's the sane use of Path().splitlines() ?

Quá tải / toán tử tương đương với bổ sung đường dẫn.

Thêm một phương thức mkdir () vào đường dẫn. Điều này (và bây giờ cũng chạm ()) đưa các nút của Starargs đến đường dẫn hiện tại, giả sử đó là một thư mục. Điều này cho phép các thư mục sáng tạo với một cuộc gọi ::
child nodes to the current Path, assuming it is a directory. This allows creating
many directories with one call::

>>> p = đường dẫn (rpmroot) >>> p.mkdir ('build', 'nguồn', 'thông số kỹ thuật', 'rpm', 'srpms')
>>> p.mkdir('BUILD', 'SOURCES', 'SPECS', 'RPM', 'SRPMS')

Duy trì tính bất biến cho các bài kiểm tra tại chỗ và cập nhật để nắm bắt hồi quy này.

Thêm một lớp trừu tượng hóa hệ thống tập tin cho phép chúng tôi sử dụng các ngữ nghĩa và mật độ của Nix với bất cứ thứ gì sử dụng các cấu trúc giống như đường dẫn.
metaphors with anything that uses Path-like structures.

0,0.2 (ngày 21 tháng 8 năm 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Đã thêm lớp đường dẫn - giống như chuỗi với các phím tắt! NIX.CD nhân đôi như một hàm và một bí danh bổ sung bối cảnh trong ffs.nix
nix.cd doubles as a function and a contextmanager
Many extra aliases in ffs.nix

0.0.1 (tháng 7 20 2012) +++++++++++++++++++++++++++++++++
+++++++++++++++++++

Phát hành lần đầu. Bộ tính năng hữu ích tối thiểu. Đã biết triển khai không đầy đủ.