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.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: fetchcode-0.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 918bdcdfaea460f92e6b3f13fb7926071f26764a01e315b38c3eab001368b399
MD5 4973b4967ce3ce2c29bf55a1a03032e7
BLAKE2b-256 6554f3b324fb50768d29c00f58e64103836a894d9e97e577ee276fe7d0da7395

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fetchcode-0.5.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1116f8ff742d5050fae64096ec5e7b355912aef9eca7d3805d53b7b8ad026a13
MD5 477d9058f2e3b2eebaa850cef2d59514
BLAKE2b-256 11dd56b75a07719a39544179a0b94abc6336b7a61c1ed445dbd8aec627b92a75

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