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/djinn-soul/CytoScnPy/main/install.sh | bash

Windows (PowerShell):

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

Via Pip:

pip install cytoscnpy

From Source:

git clone https://github.com/djinn-soul/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: djinn-soul/CytoScnPy@v1
  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

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://djinn-soul.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

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
cytoscnpy deps .                   # Dependency analysis
cytoscnpy init                     # Scaffold config in the current project

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 = ["CSP-P003"] # 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.

Contributing

See CONTRIBUTING.md for development setup, testing instructions, 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.22-cp313-cp313-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86-64

cytoscnpy-1.2.22-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.22-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cytoscnpy-1.2.22-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

cytoscnpy-1.2.22-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.22-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cytoscnpy-1.2.22-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

cytoscnpy-1.2.22-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.22-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cytoscnpy-1.2.22-cp310-cp310-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10Windows x86-64

cytoscnpy-1.2.22-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.22-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cytoscnpy-1.2.22-cp39-cp39-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.9Windows x86-64

cytoscnpy-1.2.22-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.22-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cytoscnpy-1.2.22-cp38-cp38-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.8Windows x86-64

cytoscnpy-1.2.22-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.22-cp38-cp38-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 727448dfb8fd98958771c557b14a079211e95bc8752d670bb0dadeef465b067c
MD5 1764b8a107e6fabd41a6de83fe80dee5
BLAKE2b-256 a15369de9d05a587c2382a542e1929f8ba14a5bf2b36c25cb7b2de74df0dfb0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 76dc4fc136c4c37f5819fd522ec015b72bf9626236ea65d106a73ba2f29c46eb
MD5 094afa416ba8bb2007e93d47fde5f03b
BLAKE2b-256 ae802ea55e953eec1951ba03ebbf4fb1f9c9a8fdbe8984267f7b185750853385

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da7875521227fcb9c5e11cdb0a3d6e9636013337d6e3a1577d8c94e79b763dc6
MD5 f8f9f7c78e4f6c9905d756c960ca113b
BLAKE2b-256 52fc7b3522b100d7ea437cbf758e0faa24b2bfe508d11220dcbc896030b3fa96

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 66be979ebecfa1d16d32d641b367ab0137a3f5078dd4781f23081563a6cd49fd
MD5 614b9215450e30e99aa6b9acf6f3f616
BLAKE2b-256 b90f6cd2265364435b86781e2456386e9ee5f8d9fb3f4846595674880aad9ba9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01badf6be43ce3676913fc0ec6499d126478724b80c61b455c5ce6af07a10a5d
MD5 f4919ce8daeb2b14e2d667e8d65b750a
BLAKE2b-256 86c49c63d9cb265513e04c109ddf204d7450c680003b1208d6b44f1ca56107f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f98b5040b2be61afc48e698afc3421d2cdc31558c58fb191ec58801661a4e09
MD5 8d0a49d1332105fc5b11f284c81bb800
BLAKE2b-256 de0e0ae3c1300ce74ef15d93d3dc195661c9f1d3254206f0f8fb44ea90916740

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c14d6d7a0c20a58c4cafe90bb86b9761f30d6a1cc79134097861e9313a4c9e6f
MD5 475cc92e5cded1a16e5c3a30c3fe7d28
BLAKE2b-256 746567df36af7bc92acf5c09fd72a6c9727f51a9273db512bc3874660e0905f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 617905bdecaa05b0fd75c544ec3344170b38064bccb6c9841d405836bfe192ef
MD5 ae581677d73790e1bdd6f8a897faf0d1
BLAKE2b-256 8ee610164e9036dfa347091765456a66b81da44f51d237807cb6be39fd806bbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02f2e13a6f80a5d76a8e5398c899cac2c4234d668e36407b14f96021be390ffa
MD5 94eecbf36a1c70c1441e87f2c6efc4be
BLAKE2b-256 14086c55329495b77748834778e59b689343766664c5b630c220a8a83e842622

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e536c0fd682bbc9a63f86df83085ecd77d1332aec3ec443335327b501ab63e15
MD5 56c4290fce1484b4dd74d4aef33eed85
BLAKE2b-256 58435e7fafbd91d1f4e2338f50339cc1f5a166b9f44716b69098256d481dbdf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae3fb51496a25f7405c8aa7be216ef5d3cdbb66660fbbd4b42d822c677683a76
MD5 89fcb204444d2b805a04c05241ce51ff
BLAKE2b-256 9974660641687ebbb24238a711f1761d5b680abc3269d8f179850da692ccbb68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a2dba6ab4a34763501a382f3503c00d924e03a7b15ab6948fd059e2ae7f52ef
MD5 a32e4a5497a9e341152dff18aacc21a1
BLAKE2b-256 59682ffcea695cdc53a49e502179fbb97cea1fa1e3cfbae17a1fecca6fc306f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bab8371fb1ee67c00e3db9148e52220df531ff6c236b43cfa257ceb380cd468d
MD5 b49d79e833e8a8514913c490894fc230
BLAKE2b-256 71d6cb2f846f1f760062626094712d95e3688252bfa668e3bec7bbd7c8e72312

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ccef97346970280755e3f0fd89b1a47fe94a77206a4b80ca0b7cc0faf9b48369
MD5 5e10f63d40af0057d57085569b62c4db
BLAKE2b-256 49773dc2fef40b3fbea8962a48853e9f4fea3a26fddb3f3605d48470a06378d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92a3d567a8588b188406d097911038b6af7eb9bfc9bbbfc4c48243741cd40349
MD5 ec041d43e984f3b8f44b0d3a065b61a7
BLAKE2b-256 b47debd61f8a42520a6a1e495f70cf0b14315389d899b52140891914f2e02cc6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.22-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.4 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.22-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1ee02e3a6d4955ddbfa5c444881a6bfcaff64f6df030ae88c5414c6cd56038f3
MD5 cd8787e9cf0c196f52fc4481fe1c0131
BLAKE2b-256 56d02ba19d5874c3513e2c042b6d35540ede8e5ecd65da0429b2a5c611a884a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d0112af1ccfd1522cfcc3262be7d8ef27d179656dd9e724ed1880ec01fdeccaa
MD5 b928349acc59d83ccb33acc2c6f6b3a0
BLAKE2b-256 7ca83e4eaed08f5fb45c765677d06e842a47570b7a9401856ee06faad037450b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.22-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b27a9c16e9f57e1ecb70206b244036a9484991c1610bcbec9bf607eb2be4730f
MD5 8f7f1f99fce5f2f18450f4d6e3e21ab9
BLAKE2b-256 ce5751daee512f815331e5ceaa9f588b8368c829af0249baf9cabcd762a2172d

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