Skip to main content

fetchcode is a library to reliably fetch code via HTTP, FTP and version control systems.

Project description

FetchCode is a library to reliably fetch code via HTTP, FTP and version control systems. It can work using plain HTTP and FTP URLs, as well as Package URLs and version control (VCS) URLs as used in Python pip and as specified in SPDX Package Download Location

Homepage and support: https://github.com/nexB/fetchcode

Why FetchCode?

It is surprisingly difficult to have a simple API to consistently fetch code from package repositories, version control repositories and APIs: each site and each package manager has its own unique and peculiar ways. FetchCode goal is to abstract all these details and make it easy to fetch things reliably.

Development installation

Clone the repo:

git clone https://github.com/nexB/fetchcode

Then install all the requirements using:

configure --dev

Running tests

To run test suite use:

pytest -vvs

Usage

Fetch a code archive and get a fetchcode.fetch.Response object back:

>>> from fetchcode import fetch
>>> f = fetch('https://github.com/nexB/fetchcode/archive/ab65b2e645c889887227ea49eb3332d885fd0a54.zip')
>>> f.location
'/tmp/tmp_cm02xsg'
>>> f.content_type
'application/zip'
>>> f.url
'https://github.com/nexB/fetchcode/archive/ab65b2e645c889887227ea49eb3332d885fd0a54.zip'

Fetch some package metadata and get a fetchcode.packagedcode_models.Package object back:

>>> from fetchcode import package
>>> list(package.info('pkg:rubygems/files'))
[Package(type='rubygems', namespace=None, name='files', version=None)]

License

  • SPDX-License-Identifier: Apache-2.0

Copyright (c) nexB Inc. and others.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fetchcode-0.5.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

fetchcode-0.5.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file fetchcode-0.5.0.tar.gz.

File metadata

  • Download URL: fetchcode-0.5.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for fetchcode-0.5.0.tar.gz
Algorithm Hash digest
SHA256 84136d32a0c348d9fe60ed89ba98e109cda47075c03d7567d2db98d9f4aa1683
MD5 8e5e1e8afb45a3346d9329e4dae2a9ef
BLAKE2b-256 2d48a23c2947f0300c2a8b757039485f21896baeb66dbdfb32ede73a9a4bf98a

See more details on using hashes here.

File details

Details for the file fetchcode-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: fetchcode-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for fetchcode-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f82bf2fb4e41683ddccf8d9da27a0950574e9bbc8c2d8e81b0e1bf52864ba40
MD5 df6672feca5d51f8baf55c1e283d394d
BLAKE2b-256 8147ca4fce191882eda5c073bdf6b1e757c893183d9824a33e54e8ff5f53dedf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page