whl2conda.api.stdrename¶
Support for standard pypi to conda renames drawn from conda-forge.
There are files generated automatically by conda-forge bots that include information about pypi/conda package names. These are available from:
https://github.com/regro/cf-graph-countyfair/blob/master/mappings/pypi
This package provides utility functions for downlaading mappings from that site and extracting a standard pypi to conda name mapping dictionary.
NOTE: this module should not be considered stable! The API may change incompatibly in a future release.
Attributes¶
DEFAULT_MIN_EXPIRATION
module-attribute
¶
Default minimum expiration in seconds for cached renames
NAME_MAPPINGS_DOWNLOAD_URL
module-attribute
¶
URL from which automatically generated pypi to conda name mappings are downloaded.
Classes¶
DownloadedMappings ¶
Bases: NamedTuple
Holds downloaded mapping table from github with HTTP headers.
Source code in src/whl2conda/api/stdrename.py
Attributes¶
NameMapping ¶
NotModified ¶
Functions¶
download_mappings ¶
download_mappings(
url: str = NAME_MAPPINGS_DOWNLOAD_URL,
*,
etag: str = "",
timeout: float = 20.0
) -> DownloadedMappings
Download pypi to conda name mappings from github
| PARAMETER | DESCRIPTION |
|---|---|
url
|
download url of mappings file on github
TYPE:
|
etag
|
ETag from previous download
TYPE:
|
timeout
|
max seconds to wait for connection
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
DownloadedMappings
|
Mapping table and HTTP headers. |
| RAISES | DESCRIPTION |
|---|---|
NotModified
|
if etag was specified and content has not changed |
HttpError
|
other HTTP errors (e.g. 404 etc) |
URLError
|
connection errors |
Source code in src/whl2conda/api/stdrename.py
load_std_renames ¶
Load standard pypi to conda package rename table.
A copy of this table is kept in a local a cache file (see user_stdrenames_path) The table will be read from that file, it it exists, otherwise the table included in this package will be copied to the user cache file.
| PARAMETER | DESCRIPTION |
|---|---|
update
|
if true, this will update the table from online list generated from conda-forge and saves it as the new cached copy.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict[str, str]
|
Dictionary of pypi to conda package name mappings. The |
dict[str, str]
|
returned dictionary will also contain the entries "$etag", |
dict[str, str]
|
"$date" and "$source" taken from the downloaded web file |
dict[str, str]
|
from which it was computed. |
Source code in src/whl2conda/api/stdrename.py
parse_datetime ¶
Parse datetime string from HTTP header
Returns None if string is empty or time is malformed.
Source code in src/whl2conda/api/stdrename.py
process_name_mapping_dict ¶
Convert name mapping table from github to simple rename table.
This only returns mappings where the name is different.
| PARAMETER | DESCRIPTION |
|---|---|
mappings
|
downlaoded mappings
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict[str, str]
|
dictionary mapping pypi to conda package names |
Source code in src/whl2conda/api/stdrename.py
update_renames_file ¶
update_renames_file(
renames_file: Path | str,
*,
url: str = NAME_MAPPINGS_DOWNLOAD_URL,
min_expiration: int = DEFAULT_MIN_EXPIRATION,
dry_run: bool = False
) -> bool
Update standard renames file from github if changed
This will only download new data if the existing data has passed its expiration.
| PARAMETER | DESCRIPTION |
|---|---|
renames_file
|
path to renames file, which does not have to exist initially |
url
|
url of name mapping file to download. This file is expected to contain a JSON array of dictionary containing "pypi_name" and "conda_name" entries.
TYPE:
|
min_expiration
|
minimum seconds before existing data expires. Default is 5 minutes.
TYPE:
|
dry_run
|
does not update the file, but still does download and returns True if file would change
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
bool
|
True if file was updated. False if file has not expired yet |
bool
|
or upstream data has not changed. |
Source code in src/whl2conda/api/stdrename.py
user_stdrenames_path ¶
Path to user's cached copy of standard pypi to conda renames file
The location of this file depends on the operating system:
- Linux: ~/.cache/whl2conda/stdrename.json
- MacOS: ~/Library/Caches/whl2conda/stdrename.json
- Windows: ~\AppData\Local\whl2conda\Cache\stdrename.json