Skip to main content

depster

Overview

This Python package converts a package-lock.json file into a CSV file containing detailed information about project dependencies, including their versions, integrity, and metadata. It also fetches the latest versions of the packages from the NPM registry.


Features

  • Parse JSON: Reads and processes package-lock.json into a structured DataFrame using Pandas.
  • Extract Key Information: Captures current version, integrity hash, requirements, and nested dependencies.
  • Check Dependencies: Identifies if a package has dependencies.
  • Fetch Latest Versions: Uses the NPM registry API to get the most recent version of each package.
  • Export to CSV: Outputs the cleaned and enriched data to dependencies.csv.

Prerequisites

Before running the script, ensure you have:

  1. Python 3.x installed.
  2. Required libraries:
    pip install pandas requests
    

How It Works

1. Load the JSON File

The script reads the package-lock.json file and parses it into a Pandas DataFrame for easy manipulation.

2. Clean and Prepare Data

  • Renames columns for better readability:
    • name → Project
    • version → Current Version
    • dependencies → dict
  • Adds new columns to store additional information:
    • Latest Version
    • Integrity
    • Requires
    • Dependencies
    • hasDependencies (boolean flag indicating whether a dependency has its own dependencies)

3. Process Dependency Information

Extracts and processes data from the dependencies dictionary:

  • Current Version: Retrieves the version of each package.
  • Integrity Hash: Captures the package's integrity value if available.
  • Nested Dependencies: Lists any nested dependencies along with their versions.
  • Required Versions: Lists required versions of dependencies.

4. Query NPM Registry

For each package, the script queries the NPM registry API (https://registry.npmjs.org/:package) to fetch the latest available version and populates the Latest Version column.

5. Export to CSV

The final DataFrame is saved as a CSV file named dependencies.csv.


Usage

  1. Run the script:
    depster path/to/package-lock.json
    

Output

Generated File

The output file, dependencies.csv, will be created in the same directory as the script.

Example Output

The resulting CSV file will include the following columns:

Packages Project Current Version Latest Version Integrity Requires Dependencies hasDependencies
1 Example1 1.0.0 1.2.0 abc123... dep1: ^1.0.0, dep2: dep3: 1.1.0, dep4: True

Notes

Performance Considerations

  • The script sends a separate request to the NPM registry for each package. This can slow down processing for projects with a large number of dependencies.

Warning Suppression

  • Warnings are suppressed in the script for a cleaner execution log.

Limitations

  1. The script assumes a specific structure for the package-lock.json file.
  2. An active internet connection is required to fetch the latest package versions.

License

This project is open-source and available under the MIT License.

Release files for depster 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for depster 1.1.1
File Size Uploaded
depster-1.1.1.tar.gz 34.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for depster 1.1.1
File Interpreter ABI Platform
depster-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 43.4 kB

Release files / depster-1.1.1.tar.gz

Download URL depster-1.1.1.tar.gz
Size 34.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4308b4fd4e89181a9ccd769029f465930c15b82992a05dd1494172b009dac79b
BLAKE2b-256 checksum
How to use checksums
b32dbe80044fccf87f4667942eda41d5385464d397402004e5105747c43634a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.9.21

Release files / depster-1.1.1-py3-none-any.whl

Download URL depster-1.1.1-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9e255d89823a09142be96786621f6556896f72bc40667171773cbd15da60024
BLAKE2b-256 checksum
How to use checksums
39635dc86e595c748b7667b2f911c6ffa3697d5a28cd7ac7826f8741d482d237
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.9.21

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page