def get_release_count(self, package_name: str) -> int: """ Returns the number of releases of the given package name available on the current registry. """ validate_package_name(package_name) self._validate_set_registry() return self.registry._num_release_ids(package_name)
def get_release_id(self, package_name: str, version: str) -> bytes: """ Returns the 32 byte identifier of a release for the given package name and version, if they are available on the current registry. """ validate_package_name(package_name) validate_package_version(version) self._validate_set_registry() return self.registry._get_release_id(package_name, version)
def get_all_package_releases(self, package_name: str) -> Iterable[Tuple[str, str]]: """ Returns a tuple of release data (version, manifest_ur) for every release of the given package name available on the current registry. """ validate_package_name(package_name) self._validate_set_registry() release_ids = self.registry._get_all_release_ids(package_name) for release_id in release_ids: _, version, manifest_uri = self.registry._get_release_data(release_id) yield (version, manifest_uri)
def get_package(self, package_name: str, version: str) -> Package: """ Returns a ``Package`` instance, generated by the ``manifest_uri`` associated with the given package name and version, if they are published to the currently set registry. * Parameters: * ``name``: Must be a valid package name. * ``version``: Must be a valid package version. """ validate_package_name(package_name) validate_package_version(version) self._validate_set_registry() _, _, release_uri = self.get_release_data(package_name, version) return self.get_package_from_uri(release_uri)
def get_release_data(self, package_name: str, version: str) -> Tuple[str, str, str]: """ Returns ``(package_name, version, manifest_uri)`` associated with the given package name and version, *if* they are published to the currently set registry. * Parameters: * ``name``: Must be a valid package name. * ``version``: Must be a valid package version. """ validate_package_name(package_name) validate_package_version(version) self._validate_set_registry() release_id = self.registry._get_release_id(package_name, version) return self.get_release_id_data(release_id)
def release_package( self, package_name: str, version: str, manifest_uri: str ) -> bytes: """ Returns the release id generated by releasing a package on the current registry. Requires ``web3.PM`` to have a registry set. Requires ``web3.eth.defaultAccount`` to be the registry owner. * Parameters: * ``package_name``: Must be a valid package name. * ``version``: Must be a valid package version. * ``manifest_uri``: Must be a valid manifest URI. """ validate_package_name(package_name) validate_package_version(version) self._validate_set_registry() return self.registry._release(package_name, version, manifest_uri)
def _validate_name(self, name: str) -> None: validate_package_name(name) if name not in self.build_dependencies: raise KeyError( f"Package name: {name} not found in build dependencies.")