a [f@sddlZddlZddlmZmZmZmZmZm Z ddl m Z ddl m Z ddlmZmZddlmZddlmZddlmZmZdd lmZd d lmZmZmZmZm Z e!e"Z#Gd d d eZ$GdddeZ%GdddeZ&dS)N) CollectionIterableIteratorList NamedTupleOptional) pkg_resources) Requirement)NormalizedNamecanonicalize_name)parse)misc) get_installer get_metadata)$pkg_resources_distribution_for_wheel)BaseDistributionBaseEntryPointBaseEnvironmentDistributionVersionWheelc@s&eZdZUeed<eed<eed<dS) EntryPointnamevaluegroupN)__name__ __module__ __qualname__str__annotations__r r H/usr/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.pyrs rc@s0eZdZejddddZeeeddddZ e e edd d Z e e edd d Z e edd dZe edddZe edddZe edddZe edddZe edddZeedddZeedddZe ejjdddZd&eeee d!d"d#Z!eedd$d%Z"dS)' DistributionN)distreturncCs ||_dSN)_distselfr#r r r!__init__ szDistribution.__init__)wheelrr$cCs>|}t|||j}Wdn1s,0Y||Sr%)Z as_zipfilerlocation)clsr*rzfr#r r r! from_wheel#s ,zDistribution.from_wheelr$cCs|jjSr%)r&r+r(r r r!r+)szDistribution.locationcCs|jjSr%)r&Zegg_infor0r r r!info_directory-szDistribution.info_directorycCs t|jjSr%)r r&Z project_namer0r r r!canonical_name1szDistribution.canonical_namecCs t|jjSr%) parse_versionr&versionr0r r r!r45szDistribution.versioncCs t|jSr%)rr&r0r r r! installer9szDistribution.installercCs t|jSr%)r Z dist_is_localr&r0r r r!local=szDistribution.localcCs t|jSr%)r Zdist_in_usersiter&r0r r r! in_usersiteAszDistribution.in_usersitecCs t|jSr%)r Zdist_in_site_packagesr&r0r r r!in_site_packagesEszDistribution.in_site_packagesrr$cCs |j|st||j|Sr%)r&Z has_metadataFileNotFoundErrorr)r(rr r r! read_textIs zDistribution.read_textccsZ|jD]F\}}|D]4\}}t|d\}}}t|||dVqqdS)N=)rrr)r&Z get_entry_mapitemsr partitionrstrip)r(rentriesrZ entry_point_rr r r!iter_entry_pointsNszDistribution.iter_entry_pointscCs t|jSr%)rr&r0r r r!metadataTszDistribution.metadatar )extrasr$cCs"|rt||jj}|j|Sr%) frozenset intersectionr&rDZrequires)r(rDr r r!iter_dependenciesXszDistribution.iter_dependenciescCs|jjSr%)r&rDr0r r r!iter_provided_extras]sz!Distribution.iter_provided_extras)r )#rrrrr"r) classmethodrrr.propertyrr+r1r r2rr4r5boolr6r7r8r;rrrBemailmessageZMessagerCrr rGrHr r r r!r"s2r"c@seZdZejddddZeedddZee e e edd d Z e e e d d d Ze e e d ddZee dddZdS) EnvironmentN)wsr$cCs ||_dSr%)_ws)r(rOr r r!r)bszEnvironment.__init__r/cCs |tjSr%)rZ working_set)r,r r r!defaulteszEnvironment.default)pathsr$cCs|t|Sr%)r WorkingSet)r,rRr r r! from_pathsiszEnvironment.from_pathsr9cCs,t|}|D]}|j|kr|SqdS)zFind a distribution matching the ``name`` in the environment. This searches from *all* distributions available in the environment, to match the behavior of ``pkg_resources.get_distribution()``. N)r Ziter_distributionsr2)r(rr2r#r r r!_search_distributionms    z Environment._search_distributioncCsD||}|r|Sz|j|Wntjy8YdS0||Sr%)rUrPZrequirerZDistributionNotFound)r(rr#r r r!get_distributionys  zEnvironment.get_distributionccs|jD]}t|VqdSr%)rPr"r'r r r!_iter_distributionss zEnvironment._iter_distributions)rrrrrSr)rIrrQrrrrTrrUrVrrWr r r r!rNas rN)'Z email.messagerLZloggingtypingrrrrrrZ pip._vendorrZ"pip._vendor.packaging.requirementsr Zpip._vendor.packaging.utilsr r Zpip._vendor.packaging.versionr r3Zpip._internal.utilsr Zpip._internal.utils.packagingrrZpip._internal.utils.wheelrbaserrrrrZ getLoggerrloggerrr"rNr r r r!s       B