sphobjinv.inventory¶
sphobjinv data class for full inventories.
sphobjinv is a toolkit for manipulation and inspection of
Sphinx objects.inv files.
- Author
Brian Skinn (bskinn@alum.mit.edu)
- File Created
7 Dec 2017
- Copyright
(c) Brian Skinn 2016-2021
- Source Repository
- Documentation
- License
The MIT License; see LICENSE.txt for full license terms
Members
-
class
Inventory(source=None, plaintext=None, zlib=None, fname_plain=None, fname_zlib=None, dict_json=None, url=None, count_error=True)¶ Entire contents of an objects.inv inventory.
All information is stored internally as
str, even if imported from abytessource.All arguments except count_error are used to specify the source from which the
Inventorycontents are to be populated. At most ONE of these source arguments may be other thanNone.The count_error argument is only relevant to the dict_json source type.
Equality comparisons between
Inventoryinstances will returnTrueifproject,version, and all contents ofobjectsare identical, even if the instances were created from different sources:>>> inv1 = soi.Inventory( ... url="https://sphobjinv.readthedocs.io/en/latest/objects.inv" ... ) >>> inv2 = soi.Inventory(inv1.data_file()) >>> inv1 is inv2 False >>> inv1 == inv2 True
Changed in version 2.1: Previously, an
Inventoryinstance would compare equal only to itself.source
The
Inventorywill attempt to parse the indicated source object as each of the below types in sequence, except for url.This argument is included mainly as a convenience feature for use in interactive sessions, as invocations of the following form implicitly populate source, as the first positional argument:
>>> inv = Inventory(src_obj)
In most cases, for clarity it is recommended that programmatic instantiation of
Inventoryobjects utilize the below format-specific arguments.plaintext
Object is to be parsed as the UTF-8
bytesplaintext contents of an objects.inv inventory.zlib
Object is to be parsed as the UTF-8
byteszlib-compressed contents of an objects.inv inventory.fname_plain
fname_zlib
dict_json
Object is a
dictcontaining the contents of an objects.inv inventory, conforming to the JSON schema ofschema.json_schema.If count_error is passed as
True, then aValueErroris raised if the number of objects found in thedictdoes not match the value associated with its count key. If count_error is passed asFalse, an object count mismatch is ignored.url
Object is a
strURL to a zlib-compressed objects.inv file. Any URL type supported byurllib.requestSHOULD work; only http: and file: have been directly tested, however.No authentication is supported at this time.
Members
-
property
count¶ Count of objects currently in inventory.
-
data_file(*, expand=False, contract=False)¶ Generate a plaintext objects.inv as UTF-8
bytes.bytesis used here as the output type since the most common use cases are anticipated to be either (1) dumping to file viasphobjinv.fileops.writebytes()or (2) compressing viasphobjinv.zlib.compress(), both of which takebytesinput.Calling with both expand and contract as
Trueis invalid.- Parameters
- Returns
b –
bytes– Inventory in plaintext objects.inv format- Raises
ValueError – If both expand and contract are
True
-
header_preamble= '# Sphinx inventory version 2'¶ Preamble line for v2 objects.inv header
-
header_project= '# Project: {project}'¶ Project line
str.format()template for objects.inv header
-
header_version= '# Version: {version}'¶ Version line
str.format()template for objects.inv header
-
header_zlib= '# The remainder of this file is compressed using zlib.'¶ zlib compression line for v2 objects.inv header
-
json_dict(expand=False, contract=False)¶ Generate a flat
dictrepresentation of the inventory.The returned
dictmatches the schema ofsphobjinv.schema.json_schema.Calling with both expand and contract as
Trueis invalid.
-
objects¶ listofDataObjStrrepresenting the data objects of the inventory. Can be edited directly to change the inventory contents. Undefined/random behavior/errors will result if the type of the elements is anything other thanDataObjStr.
-
property
objects_rst¶ listof objects formatted in astrreST-like representation.The format of each
strin thelistis given bydata.SuperDataObj.rst_fmt.Calling with both expand and contract as
Trueis invalid.- Parameters
- Returns
obj_l –
listofstr– Inventory object data in reST-like format- Raises
ValueError – If both expand and contract are
True
-
source_type¶ SourceTypesEnumvalue indicating the type of source from which the instance was generated.
-
suggest(name, *, thresh=50, with_index=False, with_score=False)¶ Suggest objects in the inventory to match a name.
suggest()makes use of the powerful pattern-matching libraryfuzzywuzzyto identify potential matches to the given name within the inventory. The search is performed over thelistofstrgenerated byobjects_rst().thresh defines the minimum
fuzzywuzzymatch quality (an integer ranging from 0 to 100) required for a given object to be included in the results list. Can be any float value, but best results are generally obtained with values between 50 and 80, depending on the number of objects in the inventory, the confidence of the user in the match between name and the object(s) of interest, and the desired fidelity of the search results to name.This functionality is provided by the ‘suggest’ subparser of the command-line interface.
- Parameters
name –
str– Object name forfuzzywuzzypattern matchingthresh –
float–fuzzywuzzymatch quality thresholdwith_index –
bool– Include with each matched name its index withinInventory.objectswith_score –
bool– Include with each matched name itsfuzzywuzzymatch quality score
- Returns
res_l –
listIf both with_index and with_score are
False, members are thestrSuperDataObj.as_rst()representations of matching objects.If either is
True, members aretuples of the indicated match results:with_index == True: (as_rst, index)
with_score == True: (as_rst, score)
with_index == with_score == True: (as_rst, score, index)
-
property