pypicloud.util module


class pypicloud.util.BetterScrapingLocator(*args, **kw)[source]

Bases: distlib.locators.SimpleScrapingLocator

Layer on top of SimpleScrapingLocator that allows preferring wheels

locate(requirement, prereleases=False, wheel=True)[source]

Find the most recent distribution which matches the given requirement.

  • requirement – A requirement of the form ‘foo (1.0)’ or perhaps ‘foo (>= 1.0, < 2.0, != 1.3)’
  • prereleases – If True, allow pre-release versions to be located. Otherwise, pre-release versions are not returned.

A Distribution instance, or None if no such distribution could be located.

prefer_wheel = True[source]

Give an url a score which can be used to choose preferred URLs for a given project release.

class pypicloud.util.TimedCache(cache_time, factory=None)[source]

Bases: dict

Dict that will store entries for a given time, then evict them

cache_time : int or None

The amount of time to cache entries for, in seconds. 0 will not cache. None will cache forever.

factory : callable, optional

If provided, when the TimedCache is accessed and has no value, it will attempt to populate itself by calling this function with the key it was accessed with. This function should return a value to cache, or None if no value is found.

get(k[, d]) → D[k] if k in D, else d. d defaults to None.[source]
set_expire(key, value, expiration)[source]

Set a value in the cache with a specific expiration

key : str
value : value
expiration : int or None

Sets the value to expire this many seconds from now. If None, will never expire.

pypicloud.util.create_matcher(queries, query_type)[source]

Create a matcher for a list of queries

queries : list

List of queries

query_type: str

Type of query to run: [“or”|”and”]

Matcher function
pypicloud.util.get_settings(settings, prefix, **kwargs)[source]

Convenience method for fetching settings

Returns a dict; any settings that were missing from the config file will not be present in the returned dict (as opposed to being present with a None value)

settings : dict

The settings dict

prefix : str

String to prefix all keys with when fetching value from settings

**kwargs : dict

Mapping of setting name to conversion function (e.g. str or asbool)

pypicloud.util.is_compatible(wheel, tags=None)[source]

Hacked function to monkey patch into distlib


Normalize a python package name

pypicloud.util.parse_filename(filename, name=None)[source]

Parse a name and version out of a filename