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/aboutcode-org/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/aboutcode-org/fetchcode

Then install all the requirements using this command (on POSIX):

./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/aboutcode-org/fetchcode/archive/ab65b2e645c889887227ea49eb3332d885fd0a54.zip')
>>> f.location
'/tmp/tmp_cm02xsg'
>>> f.content_type
'application/zip'
>>> f.url
'https://github.com/aboutcode-org/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.6.0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

fetchcode-0.6.0-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fetchcode-0.6.0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for fetchcode-0.6.0.tar.gz
Algorithm Hash digest
SHA256 1ad30848a45b7be2a9b2dfb4e6cc7d564d508a1e2824876915d3377beeb5d602
MD5 310f2087a5d371938bc4585c0d7f495e
BLAKE2b-256 991c81bf30e0829a5d249ede310add1769c98b088d1fdec34afe9694736e8880

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fetchcode-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for fetchcode-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efe531d9c3fe69be26f6a40f0fe0a3fee80faca61403bd286fe42db2020884aa
MD5 aa206f58bb218f34b7de08e28a85fa64
BLAKE2b-256 4678f41234269699a5530fcdf087da69681b82aabffcf1a6e18d97181d3e7192

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