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

Uploaded CPython 3.13Windows x86-64

cytoscnpy-1.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cytoscnpy-1.2.12-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86-64

cytoscnpy-1.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cytoscnpy-1.2.12-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11Windows x86-64

cytoscnpy-1.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cytoscnpy-1.2.12-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10Windows x86-64

cytoscnpy-1.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cytoscnpy-1.2.12-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86-64

cytoscnpy-1.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cytoscnpy-1.2.12-cp38-cp38-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8Windows x86-64

cytoscnpy-1.2.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

cytoscnpy-1.2.12-cp38-cp38-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 02e599aaf939292a663581c035509ea76b1ed50458627f1429830551cc0e1529
MD5 8b3c3f16f2a181af3ba72d713c279272
BLAKE2b-256 4b9d22c954f670d69e31cc243e1d85b9e8bf22a6b0faec3e9f0ede8e284400a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67bac07778f1800a0f73029b8228a783515a25654e062996ade860463e9d42fa
MD5 68f4d67d2e472375461823ab4f16e704
BLAKE2b-256 969316087352d0a1ac97e56198753191e2e7ad3706ff8122accc327bacf0a773

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17df77be44fb96942deace4012153cca7feeffd2bb76aa358941e9fef60629ed
MD5 ecb50e9db0e79c85457d54d38ebdeff9
BLAKE2b-256 01929417b41cedf1e1545490371a8bcfc8ff9b890f248ee7a893bdf0ea967f71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a7517e7708f4490c142cc75e2702a4acd2a8c4bc190520627a74f5e192f60f6f
MD5 87b1774af3b94c17652ea410d718af79
BLAKE2b-256 2c5bd65c0cc9131cdb582b92d9d42e2a71523c25ce362403b790abfdf37ba9c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdd95fe2c0c58957d5a541eabf2bd538346a9716b4794c0d28ac9e7d5d3c86ee
MD5 e4e72dc66cc4f60651e7e89dac53b5af
BLAKE2b-256 7be9d84da143031e02d973729d4bae52a059685dbd24549f5ec8c8336c4af354

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c591db4793d37b110541a015ddc6c932e4dce82293f79c1693ac6c88e963eb0e
MD5 6f82d6e13180918d2ec1243c2263b20b
BLAKE2b-256 1e5d466b9085f0c880de7f16ae79287b995b4bd45cfbc3101b129f39d08ae199

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b6b6c6576af332b2efdf4dcaa6e727750ebb9c09bf4ea83aba91f51ca2610eb9
MD5 abea957aa974414757ee97e99959be67
BLAKE2b-256 d827cb50777ec04ea06d2615b5252e84986ef30fea7911f138c4f5f12e618896

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69348b7cbafa842ef078d2cf7779d31284038e9dad9a8c7bf56a2d5c0a3d28f8
MD5 5069a792f6a20494ce5bc0608b75a6b8
BLAKE2b-256 5f1e18ec3eb1185ebb2e00173cb569a3d62f8ba77db1073113ac1ed789e73502

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9069ba89afaae80a95fcc31e21e55ac3d5f4b9337c54b9e1d590d10efeb7192
MD5 444e6f26e97f09292969faa18eed0c89
BLAKE2b-256 db2051baa820fc6acff332b820315f3f7bfdaccade2472c9937a7bb78f060f41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 07cc080d4512c711834ace755e2176e5a03be66aca5cadaa10c9d360c81f75b7
MD5 116072611611850b3a4cd7556f3793fc
BLAKE2b-256 e47a47cda4db9bf37f76c0a3763b5eec5bf35c82cc1be40dc4066798fa964d5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b20725ac5bc84c5042849203d5c98564f08ed132c4877d5dfe94d4e77c39ea04
MD5 796dfbc1724495ee6c224e54346566cf
BLAKE2b-256 45cef7d2b5f9c3e03ac0f2ab7f2211ce4c8c825749cb586abfbc5926d779ab9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d34211e57dfbbbdab9b0a22628833cfd9674f01aeec16945e4db04edf4450e50
MD5 431a5bf371a8935c550f2a1ebe7fce47
BLAKE2b-256 84fae9e2a674eeb4fde566b4224a98cfa3fc4fb668214654ec08ffc02036042d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3e079f087c2b24f9646e983ee058ab82535d171c749d98d301c1267097a3bdb4
MD5 e3ac489a9ebe645f044852ceeaa2ee47
BLAKE2b-256 dc513f71db4fb3a78b528d402a942f8d77baf374433ebde539bd504de235f9a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bdbaef2239bce4a7f3ba11a8194fc03b625800000db29adcea001e31301b86f
MD5 a44c455ecd552620c113a02b6709b776
BLAKE2b-256 614dc62576c4de5dc76d090f30dcadece596141f6e213a9ef95b80d995550b7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec9c0d891dbc103cb03f7fa0d829d3254ced469ead33d82d175b4b5d53834b96
MD5 9778a7fd0dec11acedd7c4054fa720d7
BLAKE2b-256 96b3384db845559a4768319aad45826fa2dcfe25088cf6be507359c5357ceaec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cytoscnpy-1.2.12-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.2 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.12-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 587a9f858d868d4fa6da95bf5e41d4f1dcdd35dd0f20c6dc1a29551915b8189a
MD5 d9b19c52be7e26eeb0ceef2e16f4bcc0
BLAKE2b-256 3cf82b67fea85ad3c7137da0b5996817b442c74eea108261ffdf920aaafe9af4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fc87c8a782a50e3c2c86b8458bbe5497b326276c3e531f64bb5afed1170d56c
MD5 8e4cfdc45b3afc69b67d71394c2d2a65
BLAKE2b-256 108e2b7b230ccfb92d23156a5e3da8173c6d855cc00610246f3062209e06a014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cytoscnpy-1.2.12-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a700b2a795c9a0422efa9b556d6b893f4ce1605c61f76ad248a327aeaa8d99b5
MD5 a5ff6e953f4cf0f1c9d096f9c38dd413
BLAKE2b-256 c207e8d83b98162072a6460fed9c30148e07e2e9dcb3cc5642367da59123b243

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