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 AI Assisted

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:

⭐ Star this repo if you find it helpful!

Developed from scratch with assistance from Gemini AI.

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.20-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

cytoscnpy-1.2.20-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.20-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

cytoscnpy-1.2.20-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.20-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

cytoscnpy-1.2.20-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.20-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

cytoscnpy-1.2.20-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.20-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

cytoscnpy-1.2.20-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.20-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

cytoscnpy-1.2.20-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.20-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.20-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 252be65e7905311295c2c0e832f87f5c66d895fce48436f1ab71685ef8989c29
MD5 fe53b3ea6f682b9a2b1ad466e66b9d9c
BLAKE2b-256 4c0eeab981007edfc57dfb322cd486b18885b090a710b2370e6892b810e9d3ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 189628d5e7227cbc5e8e23ef0ac99a4dea63f9c7c8ac0abe623ea057a8264328
MD5 5cc1a7b1faffbab7bf1fd0022a5e9697
BLAKE2b-256 64286613ecdec7cea64caad5afac554928ad389dbb2aa79cd2074a6fbe0cb5e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29869460c25b12f6b2b4865e6e7f56bc3160b3fcfb711795aa33aa706af5e5ae
MD5 1c2925f2e0e5d516d2725803c24f735f
BLAKE2b-256 6c1fb0ab3181a325264968a3ce1513daaed6a0f4ab8d6317a108810a587507c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d9abadd114b8721c925b51410b24c1f2f62a99fa953af7a8423fae1f887d3c9d
MD5 5e16a32a190e2cffdad7b3d669efc82f
BLAKE2b-256 5c38a4f99ee1901c27948579efd4f5954501b03baa76ddab268c981ddc61756b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85f89b3af7c1987df478da2adfecf4cd6200e5056697474ed4ba23325fbc53b6
MD5 088d24b1a16c9b78e969345cc46c3c15
BLAKE2b-256 8a73e34da2f3c8a2d1123d57cbd0dab47c1e8e9ea359f73a33d72b26c682485e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 965fbd2cddf0ad81e99b66933557fc9263351cc7ce3b90d0df0c02adbdd621c5
MD5 3a66ff30214f3a00a7ef8472f4a9f909
BLAKE2b-256 be5695bee9c76c7208ea45cba48d5fa66feb9cf6231d2a8464c2ab38b686fed8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 563810973fc0d2e85912d9099152b5e89cc7bc9e2eb58520aeeb0494d21a30b5
MD5 a1bf91cedbec47624ec8af9798826540
BLAKE2b-256 bd31abf520c7caf11f4caf9421bcdec1b63a950bbe12347d20cf1cc5841d63ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2dc9874ac3977c253548f0ae16b4e5a228b675280884e12fcd0433451575f2fe
MD5 1a92630936c023a722ed4d666a003e4b
BLAKE2b-256 f1561106660d4e122f1ef12d7844f69817cd755fe07bdc50e9047b3180dcb74f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4744e352bd342fa99b53ebd10dea3f65786406357c986acaf850cffb90f0935
MD5 934a501a0a7fbfc301e2806ad3d6c1a7
BLAKE2b-256 7f578f7b11fef3e7cfa094fed80c57d7cfdd5f75e609619a9ea8b7a8d3a238cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 31028804e7e01a84562a4f1e29111ed55dcf9e8c3da3143e472485cd76a659a9
MD5 50108f98128c520d2c7f85038cab3c13
BLAKE2b-256 4b1f08bf86541a7986f4f24395e1ee2ebc6a062ea83a80e9e90ddbf6350e92eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2302453681e0ac04c717cb938675d18f8b8d9d696ebd02b153c05824d1c7da2f
MD5 54c17333353d51df1ad332e395861d4f
BLAKE2b-256 10ca63e60354050f51a6354f7d27fa88bcd5bf958ecc0314a06e360b39ccaef7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20a02619f67458d68f1c60764588cf1c5e6425c07ee8f12f0e23989ab92fa7f2
MD5 3b55dfc6c416160cb8f2d69467722244
BLAKE2b-256 68f583578fcf908aac5a0a77068ee16f3114a48e8890b1ee9176f72ec227dc94

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ad161030d60335beec14759d8d84847bc1bf00a1ab1caa426ca2ba1dee75fd0a
MD5 f4ddd0f817918c3d836002e7ad4c2c45
BLAKE2b-256 685113c8891b6bad5d7e1e1527c2498a909f361b80c0c23d868f04bdb1448103

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4d1f41b3b789796c5978bd90bee083b41efe839c84a35cb8e3c775dc6e16b7a
MD5 c9d1b40aadfee4fed2b0b7a71013c074
BLAKE2b-256 d01376d6a883a0758f08134de65ce998b5d8e8c0a92dfad121b5362e85b6842e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49a2ad4947001e01d94f58957956113d9cbf5c3ed8fd990818c68209dc8f81a9
MD5 a62453c1f8117af6ea6c463f2d0f61ad
BLAKE2b-256 b31b5cd76aab8da651294d92018345192df7e06385d10299deffc8cb26041dd9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.20-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.12

File hashes

Hashes for cytoscnpy-1.2.20-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fb0d88fc3a46a17aa9f529c9ac0752a642fc71dd0467dd590eae3798b7afbea4
MD5 3ef17d1782c446977471c309226897ab
BLAKE2b-256 3571300af8a99d2d3eaf86ad4d5cb6702fc33aabffd0e8422770cc3c4729279b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbf12c48f45d78856687bab3413529798b66c46da98b0a36ea177d8cd8e2f9b3
MD5 d331ff3086e2ae86a20c48168b7513a7
BLAKE2b-256 6741e2eac4515124e262499926a4f5e32fd985102d2f479207d4c4343c904d35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.20-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ab97a5796a7d17659996912c87a5a733f34e999d9d7918ee4f8a53b57d6ecc9
MD5 06707f94345d0d404eda11fcb63b49ad
BLAKE2b-256 a4d43c1b502b82440a22004ec9a7f915c6c983bde7a461628f7ce0bc27a8809b

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