-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v2.0 Rewrite #30
Draft
jwodder
wants to merge
132
commits into
master
Choose a base branch
from
2.0
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
v2.0 Rewrite #30
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jwodder
added
enhancement
New feature or request therefor
breaking change
Introduction of an incompatible API change
in progress
Currently under development
labels
May 3, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
breaking change
Introduction of an incompatible API change
enhancement
New feature or request therefor
in progress
Currently under development
library API
Relating to the public library API
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #3.
Closes #4.
Closes #6.
Closes #9.
Closes #19.
Major Changes So Far
See the changelog for more.
SCHEMA
alias forWHEEL_SCHEMA
ParsedWheelFilename
andparse_wheel_filename()
fromwheel-filename
inspect_wheel()
adigest_files
option for controlling verification of files' digests--digest-files
/--no-digest-files
option for controlling verification of files' digestsTo Do
Detect more validation errors #34
Check zipfiles for "well-behaved-ness" #35
Use
headerparser
's upcoming attrs-based parser API to rewrite theMetadata
andWheelInfo
classesattrs
for defining classes instantiated from scanned stanzas headerparser#52Give
Metadata
apep566_json()
method (Support emitting metadata in the JSON format from PEP 566 #17)Look into whether
zipfile.Path
would help with the codeMake
Record.dist_info_dirname
optional and have FiletreeMapping handle its none-ness by declaring the key absent?Give
DistInfoDir.from_path()
awheel_name
argument?When
wheel_info.root_is_purelib
is absent/not set, have the filetrees treat it as though it wereTrue
Should paths support
/
when the left operand is a file?Record
will need a publicfrom_csv_fields(cls, rows: Iterable[list[str]])
classmethod or similar for constructingRecord
s for testing purposes (bothwheel-inspect
andcheck-wheel-contents
)Make
--no-digest-files
the CLI's default behavior?Validation:
validate()
check the version in*.dist-info
&*.data
for validityRequires-Python
WheelInfo
a method for validating the tags & build number against that given in a wheel filenamevalidate()
validate the wheel name's versionMETADATA
fieldsError collection:
validation_error
pluralverification_errors: list
property containing all file verification errors and averified: bool
propertyvalidate()
,verify()
, and anything with astrict
argument afail_fast=True
option for controlling whether to raise the first error or keep going and collect all of themwith_traceback(None)
called on theminspect()
have afail_fast
argument?get_all_defects()
methodRECORD
s #13for_json()
, which will mean changing the return structure ofRecord.for_json()
Inspection:
WHEEL_SCHEMA
again toINSPECTION_SCHEMA
?INSPECT_SCHEMA
? Back toSCHEMA
?data_dirname
errorsInspection
class for the return value ofinspect()
.derived.readme_renders
to inside the.dist_info.metadata.description
object?.derived.description_in_*
fields?Make the
wheel_inspect
namespace re-export all exception classes fromwheel_inspect/errors.py
Make the following functions from
wheel_inspect/util.py
public:is_dist_info_dir()
is_data_dir()
is_dist_info_path()
is_signature_file()
is_record_file()
Tests:
.filetrees[Tree.PLATLIB]
and.filetrees["platlib"]
in a wheel with platlib.filetrees[Tree.PURELIB]
and.filetrees["purelib"]
in a non-pure wheel with purelib.filetrees[Tree.ROOT]
and.filetrees[Tree.<root>LIB]
in a wheel with an empty rootlibDocumentation:
WHEEL_SCHEMA
in the documentation?--help
textdocs/index.rst
, and module docstringdocs/index.rst
.readthedocs.yaml
file