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

Uploaded CPython 3.13Windows x86-64

cytoscnpy-1.2.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

cytoscnpy-1.2.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

cytoscnpy-1.2.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

cytoscnpy-1.2.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

cytoscnpy-1.2.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

cytoscnpy-1.2.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.14-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.14-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cbb1dd637cd1d9582364c261de0f8dc3b5bcc4ea990be2b462e49e15653be613
MD5 b1f1e9b18e4f300914c2ddb2ec18b27b
BLAKE2b-256 8e21326a41642a40c0f2bed0d75f4121bf760a14abc9561d3b689921d4e0dec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 712c3d8227b6b15e0e28a6dd83877d416b59299b02320462ab7737651145e1af
MD5 66d039a3df5b69a6a5b7e796d3541b99
BLAKE2b-256 4e6e956e884873922732e655469237917b2e48d1d080e32e08abe9342479b408

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dee27c90e5874b3d62b7b4948d9fa83bbcda054afdb247cf6cce29c8d3e402db
MD5 8e55c20b5f5060083ad225891acd0cd1
BLAKE2b-256 42c06f97cbcd4291de56765912516dc2d93d02e1aabb967910aa5b2345aa58a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9d7e02d2ccc5f1de745c115358edac0d659a7ccb0beb720d56c1bcbb62c8832a
MD5 3c30f5fb0f4c0807b65f01fd110c3a06
BLAKE2b-256 ac51d388f247adddb263b62104de2b2f1121273de7bc42929ce36ff44c7d7962

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8545cf1e069d14c51595a9e7cf1366175229a2fcc23becc2f42bb6d45f6834ba
MD5 3e2f4c02fe2f0efae77e303cb67a2b54
BLAKE2b-256 dd71a830334d8c42f580e6355d92a53a8ede6c51e7707ed3d54672e463c89853

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 402fd7d33f090fab761bc84dae15ffc488685239aa5c89e6c9af6d8aa01efa74
MD5 fb60527d2046f60d7045586fd3896714
BLAKE2b-256 153b557eee5105fd82d63a5e41d8a6d1cad29d0bd52bac499d11496300f08fc9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fa36388a6c241b72ac895f6f0d7567cd30da93159dc39c230164e7c09681ff29
MD5 a1a2342718877d7752bb1574cea4e156
BLAKE2b-256 a31e2b0582c746942d81178e141aee446932a72b5b339f4e33ffd6b1f28b0281

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b872cb802fecf77478af80c4e338ad70893a8ea4154eecbb735f69af9db51232
MD5 7f4904a6c73b9b9223192004ba581837
BLAKE2b-256 9a4e84d6d2555e6d29a487bf041af72cb75c71cc021e4da4a42fb99524a9752c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c75f6a7eb864095d6caf4a82f755fe1965e50257c97f0f3342529f4e3dee253
MD5 0a90c22cd6e9a22ed0142b66d6836211
BLAKE2b-256 de775f12451a1a03e2af043d3eb1315c4c64bea8dc386c01589df0b95449aafc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8113ee1bcd7c40377d7156e44a5731f60802e40ce8b842548aca1784e58183f1
MD5 e592534386b0c6fb1fd5c4b54bf5ca45
BLAKE2b-256 45f49ddfbd97f90d5fb0d13e1643536560fbf1228243245272c28a2646616d5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c44b8be800c7f80c47ec94ee7aeeccce09185eccc704826179ad42d26f9f8c34
MD5 6289f22684c6c8341077ae98d3008af5
BLAKE2b-256 b188ba940291b195461e062e5baa0f0bac01b401c198abe66f63d2f48ff54eda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6e65dafa03d5a7bd828ad765eb1dbf2f60c2e56f4c9f585529f4b4bd584ef7b
MD5 4815fce2d86e3f6ab46607fefe0278e4
BLAKE2b-256 09f05db8e0623f80bb487d0219947a743e41f155e13cbb438ad725782c39f622

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7247f044115637b1344cf4d9a2afaaf1df3625ebf93b3ccd92ad8c4c56852496
MD5 9cf20e4fad86117228feae8f6eb756ff
BLAKE2b-256 cd4453be64fa59c6e656bc2700b22734bb5f33bac70727e0c1cd085d26e50512

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1eb152e759c5f072e6126ecd8fb01293a008a4c0fa4bea12d2c502e53cdd369
MD5 611c206850c38954ad7a2098d4fb4fcb
BLAKE2b-256 abd9dd0a4bfc4ed48d578c8db8988447eebe1947020c70e6b73dd3c1cce05db0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73790a51f03c4485f2f8eaa314d3441f0ed95b6f82ff9ee4c68740891259c9a9
MD5 ed1ed06080bd5ac737bd9373565ce014
BLAKE2b-256 d1f859ce9965e953a741fc2486a7ace32ee549a94a1b3f15535837a283d423b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.14-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.14-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 dfbe347d20ea89770e0adfb8f296da83b40473b044bdb9b66726db2eef8fe50b
MD5 51c1dd6f29047ea2bc208e230afabced
BLAKE2b-256 37c066067241c399ef959f850853e52ff5490672af4260fec8e0871ef5809b14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78e11dbff49f376f480e151bbf4f68bce4f1fb05c645fbaa020aa414da184096
MD5 1cfc1e7c1b18abd336a1562dd6cc4ef2
BLAKE2b-256 1a3166576a1eaa96df3f19e51001ee909a90b4c888ef2da39d62d1f3dcb00355

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.14-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1e84c2ec1da62e5107498a513229cf1fced10126eaacce09c1596c70ae30112
MD5 2f649646b02645e44864deb74be4d9b0
BLAKE2b-256 8221631843d0905b3f77b2c15217e26e844ffe44a08758a1219adf7d8246ce12

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