Skip to main content

High-performance dead code elimination analysis tool for Python.

Project description

CytoScnPy - High-Performance Python Static Analysis

CI Coverage codecov Security Audit Docs License Version

A fast, lightweight static analyzer for Python codebase. It’s built in Rust with Python integration and detection of dead code, security issues, and code quality issue, along with useful quality metrics.

Why CytoScnPy?

  • Blazing Fast: Faster in dead code detection.
  • Memory Efficient: Uses less memory.
  • Comprehensive: Dead code, secrets, security, taint analysis, quality metrics
  • Framework Aware: Flask, Django, FastAPI, Pydantic, Azure Functions
  • Benchmarked: Continuous benchmarking with 135-item ground truth suite

Installation

Linux / macOS:

# Install
curl -fsSL https://raw.githubusercontent.com/djinn09/CytoScnPy/main/install.sh | bash

Windows (PowerShell):

# Install
irm https://raw.githubusercontent.com/djinn09/CytoScnPy/main/install.ps1 | iex

Via Pip:

pip install cytoscnpy

From Source:

git clone https://github.com/djinn09/CytoScnPy.git
cd CytoScnPy
pip install maturin
maturin develop -m cytoscnpy/Cargo.toml

MCP Server (for AI Assistants)

CytoScnPy includes an MCP server for AI assistant integration via the standalone CLI binary (install script or cytoscnpy-cli build). The Python package does not run mcp-server.

# Start MCP server (standalone CLI)
cytoscnpy mcp-server

For Claude Desktop, Cursor, or GitHub Copilot configuration, see the MCP Server Documentation.

GitHub Action

Integrate CytoScnPy directly into your GitHub Actions workflow:

- name: Run CytoScnPy Analysis
  uses: djinn09/CytoScnPy@main
  with:
    args: "--secrets --danger --quality"

Action Inputs:

Input Description Default
path Path(s) to analyze .
args Additional arguments (e.g., --secrets)
version Version of cytoscnpy to install latest
python-version Version of Python to set up 3.x

Features

  • Dead Code Detection: Unused functions, classes, imports, and variables with cross-module tracking.
    • Cascading Detection: Methods inside unused classes are automatically flagged as unused.
    • Auto-Fix: Remove dead code automatically with --fix (preview by default, use --apply to execute).
  • Clone Detection: Find duplicate code with --clones.
  • Security Analysis: Taint analysis (SQLi, XSS), secret scanning (API keys, suspicious variables), and dangerous code patterns (eval, exec).
  • Code Quality Metrics: Cyclomatic complexity, Halstead metrics, Maintainability Index, and raw metrics (LOC, SLOC).
  • Framework Support: Native understanding of Flask, Django, FastAPI, Pydantic, and Azure Functions v2 patterns.
  • Smart Heuristics: Handles dataclasses, __all__ exports, visitor patterns, and dynamic attributes intelligently.
  • Cross-File Detection: Tracks symbol usage across the entire codebase, including nested packages and complex import chains, to ensure code used in other modules is never incorrectly flagged.

Usage

[!IMPORTANT] Behavioral Change: Starting from version 1.2.2, tests are excluded by default across both the CLI and the library API to reduce noise in production analysis. Use the --include-tests flag or set include_tests = true in your configuration to scan test files.

Command Line

cytoscnpy [PATHS]... [OPTIONS]

Examples:

# Dead code analysis
cytoscnpy .                                     # Analyze current directory
cytoscnpy /path/to/project --json               # JSON output for CI/CD

# Security checks (short flags: -s, -d, -q)
cytoscnpy . --secrets --danger --quality
cytoscnpy . -s -d -q                        # Same with short flags

# Confidence threshold (0-100)
cytoscnpy . --confidence 80

# Path filtering
cytoscnpy . --exclude-folder venv --exclude-folder build
cytoscnpy . --include-folder specific_venv      # Override defaults
cytoscnpy . --include-tests

# Jupyter notebooks
cytoscnpy . --include-ipynb --ipynb-cells

# Clone detection (find duplicate code)
cytoscnpy . --clones --clone-similarity 0.8

# Auto-fix dead code (preview first, then apply)
cytoscnpy . --fix                    # Preview changes (dry-run by default)
cytoscnpy . --fix --apply            # Apply changes
cytoscnpy . --fix -a                 # Apply changes (short flag)

# Generate HTML report (quality auto-enabled; add --secrets --danger for security)
cytoscnpy . --html --secrets --danger

# Pre-commit integration
# See https://djinn09.github.io/CytoScnPy/pre-commit/ for setup

Common Options:

Flag Description
-s, --secrets Scan for API keys and hardcoded credentials
-d, --danger Scan for dangerous code + taint analysis
-q, --quality Scan for code quality issues (complexity, etc.)
--clones Activate duplicate code detection
--fix Preview/dry-run dead code removal
-a, --apply Apply fixes to files (use with --fix)
--json Output results in machine-readable JSON

[!TIP] > View the Full CLI Reference for detailed usage, advanced configuration, and quality gate options.

CI/CD Gate Options:

Flag Description
--fail-threshold <N> Exit code 1 if unused code % > N
--max-complexity <N> Exit code 1 if any function complexity > N
--min-mi <N> Exit code 1 if maintainability index < N
--fail-on-quality Exit code 1 if any quality issues found
--max-nesting <N> Exit code 1 if any block nesting > N
--max-args <N> Exit code 1 if any function has > N args
--max-lines <N> Exit code 1 if any function has > N lines

Full CLI Reference: See docs/CLI.md for complete command documentation.

Metric Subcommands

cytoscnpy raw .                    # Raw Metrics (LOC, SLOC, Comments)
cytoscnpy cc .                     # Cyclomatic Complexity
cytoscnpy hal .                    # Halstead Metrics
cytoscnpy mi .                     # Maintainability Index
cytoscnpy stats . --all            # Full project report (secrets, danger, quality)
cytoscnpy stats . --all -o report.md  # Save report to file
cytoscnpy files .                  # Per-file metrics table

Tip: Add --json for machine-readable output, --exclude-folder <DIR> to skip directories globally, or --ignore <PATTERN> for subcommand-specific glob filtering.

⚙️ Configuration

Create .cytoscnpy.toml (uses [cytoscnpy]) or add to pyproject.toml (uses [tool.cytoscnpy]):

.cytoscnpy.toml example:

[cytoscnpy]
# General Settings
confidence = 60  # Minimum confidence threshold (0-100)
exclude_folders = ["venv", ".tox", "build", "node_modules", ".git"]
include_folders = ["src", "tests"]  # Optional: whitelist folders
include_tests = false
include_ipynb = false

# Analysis Features
secrets = true
danger = true
quality = true

# Fail Threshold (exit code 1 if exceeded)
fail_threshold = 10.0  # Fail if >10% of code is unused
# fail_threshold = 0.0  # Zero tolerance: fail on any unused code

# Code Quality Thresholds
max_lines = 100       # Max lines per function
max_args = 5          # Max arguments per function
max_complexity = 10   # Max cyclomatic complexity
max_nesting = 4       # Max indentation depth
min_mi = 65.0         # Minimum Maintainability Index
ignore = ["R001"]     # Ignore specific rule IDs

# Advanced Secret Scanning
[cytoscnpy.secrets_config]
entropy_enabled = true
entropy_threshold = 4.5  # Higher = more random (API keys usually >4.0)
min_length = 16          # Min length to check for entropy
scan_comments = true     # Scan comments for secrets
skip_docstrings = false  # Skip docstrings in entropy scanning
min_score = 50           # Minimum confidence score (0-100)
suspicious_names = ["db_config", "oauth_token"] # Add custom suspicious variable names

# Custom Secret Patterns
[[cytoscnpy.secrets_config.patterns]]
name = "Slack Token"
regex = "xox[baprs]-([0-9a-zA-Z]{10,48})"
severity = "HIGH"

# Danger + Taint Configuration
[cytoscnpy.danger_config]
enable_taint = true
severity_threshold = "LOW" # LOW, MEDIUM, HIGH, CRITICAL
excluded_rules = ["CSP-D101"]
custom_sources = ["mylib.get_input"]
custom_sinks = ["mylib.exec"]

Note: ipynb_cells is currently CLI-only. include_ipynb is supported in config files.

CI/CD Quality Gates

Configure quality gates for CI/CD pipelines. Set thresholds and the CLI exits with code 1 if exceeded.

CLI Flags:

# Unused code percentage gate
cytoscnpy . --fail-threshold 5  # Fail if >5% unused

# Complexity gate
cytoscnpy . --max-complexity 10  # Fail if any function >10

# Maintainability Index gate
cytoscnpy . --min-mi 40  # Fail if MI <40

# Quiet mode for clean CI output
cytoscnpy . --fail-threshold 5 --quiet

Priority: CLI flag > config file > environment variable > default

Environment Variable: CYTOSCNPY_FAIL_THRESHOLD=5.0

Performance

Accuracy (Benchmark Suite: 135 items)

Detection Type Precision Recall F1 Score
Classes 0.73 0.79 0.76
Functions 0.71 0.74 0.73
Methods 0.86 0.93 0.89
Imports 0.67 0.40 0.50
Variables 0.30 0.15 0.20
Overall 0.71 0.64 0.68

See benchmark/README.md for detailed comparison against Vulture, Flake8, Pylint, Ruff, and others.

Testing

See CONTRIBUTING.md for testing instructions.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

Apache-2.0 License - see License file for details.

Links

References

CytoScnPy's design and implementation are inspired by:

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cytoscnpy-1.2.16-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

cytoscnpy-1.2.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cytoscnpy-1.2.16-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

cytoscnpy-1.2.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cytoscnpy-1.2.16-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

cytoscnpy-1.2.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cytoscnpy-1.2.16-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

cytoscnpy-1.2.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cytoscnpy-1.2.16-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9Windows x86-64

cytoscnpy-1.2.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cytoscnpy-1.2.16-cp38-cp38-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.8Windows x86-64

cytoscnpy-1.2.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.16-cp38-cp38-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file cytoscnpy-1.2.16-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b67c573633d69938c74af5d513d2615f02d33dbe4c26dd9a95cad101d94e406a
MD5 75dc3a402418394b6cd1da1b2e393110
BLAKE2b-256 a8dd32737d3f5de12c3af29df8792ba58076ab4cf66dcd9f404180e57ad0ddad

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1957574c7e8b92d9e064330e74ac92dbc76f2ecbc08118c8a70488edaf6a710e
MD5 0d134b7bf8499bbae61d1b090f4c9075
BLAKE2b-256 6fab782b7d00dd2ed781b58bfcbf399bb2728d0d9ce320dcbf5fea8e705f0b47

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96b1c62c45cbea89bc8735538babc9a32778c0aabaec798082db1ea441d8cfd8
MD5 70c89a6f70efdb3b5acd8cab6c0e3c19
BLAKE2b-256 d2ee580c85641a80459d5015aecb227d8356089372a3743a0895b6e0fa0df8e2

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1a2066caecf63aff6117aa57c1ed073e18fb42afff73c1e9b98ed2e1208e935f
MD5 b4916b42c4312a61dd61bbb8064cf4f0
BLAKE2b-256 54904ab03964d28fe30eea86b645ed31773028e62f857366f0180042618d84a6

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fd2d10df0fc9a25bb52f15e715626111383f6b373f804f22e9c55b03acbe732
MD5 a0047122404d6341a73104d0415e8fe8
BLAKE2b-256 43b264195ceba68f24e5f7218503ed5f17253d9132a43a8b8d8537d8f6773a0e

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ff216355cd717b59a59f826057ec00bf7824ca03c007eeeaa44ee57cdb2cbb9
MD5 5f7353dede4acc75e03eb01cc0c06344
BLAKE2b-256 ad3a26cce7bc11ee7ab2d618edc3974c9b8a03c30ce59bcaf8ae7f5a4dd18d6b

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 21a715b631eb886ea571264602456cd036052a4e61a69ced43e63b502586ee3a
MD5 a037bcdbc465247651852dce02b2703a
BLAKE2b-256 df489eac716c4ce8b9eaa7b05cf7fb754ab4907bb2097dd7467f2d20f26de231

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6501981c42b8707c7bec642cee6d95f12672c55995040a48b4ddd66d5b2a37a0
MD5 9eddfb51c5aca175c646414841060155
BLAKE2b-256 66f29398ed78d132e140964d1ee02dbe64ad8140c288e2955f573dbe5a7708c6

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42676024f8a89ce1eb47bd865a059f5be2d6ac8c1a65593b89e7285e10db551a
MD5 c494a334a3fcecae42135307dd9c40b0
BLAKE2b-256 936c39ea10f8c907e20ee3dd93405707c126be3843f0a10ee9c5f05bc8f2a7f2

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9e0a19073bb00fc0eaf0cc0e6efee25ac81ed965a1d930db69eca48e522749b1
MD5 cf15eb6003fc3e8c99a11a2e73c34631
BLAKE2b-256 5410cc2d0910482a9bf0c2626fe36245a41e4da0c22c966e1f9e2b00f9fde370

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3f0f94172c522998470772872dd07903e3c549486f4bef1c02227b344912e30
MD5 82443cfc49ea5a498e14e85dcbc00c8f
BLAKE2b-256 74ea7fda795a829ad582f03fb108982fe9fc2a506aff72f4376f6c95b1c25ece

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95a5e81e9c55dee17a9a64a82ff95e96ff50e1023b4d3d1ab73ca066a23630db
MD5 b8c9387dbd1aae43e9ff976c33c55963
BLAKE2b-256 8d43d1d7c95d0b683156aa4d675df31506733fe279d3c9ac0b8b04755dc84f7d

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ab09145962a6657bf1320a5410171cd70dc9540e94a8114e31ef7a2559f06325
MD5 810e81721bd73c305bc80f9600610dba
BLAKE2b-256 41f74ee0364d9f10ce3470c4c006acd0846d40c0b7c5b4557f93532cb1d837b9

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8ab2c502abafe3bcd7c83643b1eeff53cf556e6e8457b765649e64379f34fdf
MD5 a518f7b459cb4097680051b548720463
BLAKE2b-256 47ab6c9f6e24397b60d348f75628dae70ad064cd737614707f127e651674bec9

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbc757a2da93bce4335f6b18ca1089343e4c877d05c2395d1e1081aee9fe9db9
MD5 2ed65d23e9a717cfd0d03c2574247ac7
BLAKE2b-256 56e004f2537551464ec9f1f7133e8f789ab341cb58a0d2ba72c44f94f2f88e8a

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.16-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytoscnpy-1.2.16-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 595e97f0edb7781799295eb13c3213ecf130d63877b9c75ef37c0fce39633576
MD5 8e5f59a91cd23fe86bd4277dabdcdb61
BLAKE2b-256 a081e16f454d52dbe4ecc277993e4574a06424badf00e52740948b2c360c4ef8

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef0b67f97a46703d3218407e5a26124b9402bed67d4364c88b2bc90d51033745
MD5 12c87398f1ec220adfa74150f381a982
BLAKE2b-256 1da947f5c5f7ba3e8581c79b7652a2c90c79f692f7be9b2bffc5aa6db9c4d642

See more details on using hashes here.

File details

Details for the file cytoscnpy-1.2.16-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytoscnpy-1.2.16-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa667e2358c50a537083d47a22afd3e89fe0a04cf5561baf7ce52d8f091c2f47
MD5 9b6261bc9db1917ae7b3aa358b57f12c
BLAKE2b-256 2320dbc514b2bd822f5f22309ccc294452cf91451b762fcf5752c47b53308f76

See more details on using hashes here.

Supported by

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