Skip to content

Commit 812fc16

Browse files
committed
Update project metadata and enhance README badges
Added PyPI version badge to README for better visibility. Improved pyproject.toml with a more descriptive project summary, expanded keywords, additional classifiers, and refined entry points and URLs for clarity and discoverability.
1 parent 6d33344 commit 812fc16

2 files changed

Lines changed: 10 additions & 21 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
<!-- Badges -->
3+
[![PyPI](https://img.shields.io/pypi/v/patternanalyzer.svg)](https://pypi.org/project/patternanalyzer)
34
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
45
[![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/)
56
[![Donate](https://img.shields.io/badge/sponsor-GitHub%20Sponsors-ff69b4.svg)](https://github.com/sponsors/edgetype)

pyproject.toml

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,36 @@ build-backend = "setuptools.build_meta"
55
[project]
66
name = "patternanalyzer"
77
version = "0.1.0"
8-
description = "Binary pattern analysis framework"
8+
description = "A comprehensive, plugin-based framework for binary data analysis in Python."
99
readme = "README.md"
1010
license = {text = "MIT"}
1111
requires-python = ">=3.10"
1212
authors = [
1313
{name = "EdgeTypE", email = "edgetype@goygoyengine.com"}
1414
]
15+
keywords = ["binary-analysis", "security", "reverse-engineering", "cryptography", "forensics", "malware-analysis", "statistical-analysis"]
1516
classifiers = [
1617
"Development Status :: 3 - Alpha",
1718
"Intended Audience :: Developers",
19+
"Intended Audience :: Science/Research",
1820
"License :: OSI Approved :: MIT License",
1921
"Programming Language :: Python :: 3",
2022
"Programming Language :: Python :: 3.10",
2123
"Programming Language :: Python :: 3.11",
2224
"Programming Language :: Python :: 3.12",
25+
"Topic :: Security",
26+
"Topic :: Software Development :: Libraries :: Python Modules",
27+
"Topic :: Utilities"
2328
]
2429
dependencies = [
2530
"click>=8.0.0",
2631
"numpy>=1.25.0",
2732
"scipy>=1.10.0",
28-
# Format-analysis helpers
2933
"python-magic>=0.4.27",
3034
"pefile>=2024.2.1",
3135
"oletools>=0.60.1",
32-
# Crypto helpers used by new plugins
3336
"cryptography>=41.0.0",
34-
"pycryptodome>=3.18.0",
35-
# Optional ML dependencies for anomaly detection plugins (recommended extras 'ml')
36-
# Note: these are heavy; kept as optional extras to avoid forcing installs for all users.
37+
"pycryptodome>=3.18.0"
3738
]
3839

3940
[project.optional-dependencies]
@@ -46,9 +47,7 @@ ml = [
4647
"scikit-learn>=1.2.0",
4748
"joblib>=1.2.0",
4849
"pandas>=2.0.0",
49-
# "tensorflow-io>=0.32.0 ; python_version >= '3.10'",
5050
]
51-
5251
ui = [
5352
"streamlit>=1.30.0",
5453
"textual",
@@ -57,14 +56,7 @@ ui = [
5756
[project.scripts]
5857
patternanalyzer = "patternanalyzer.cli:cli"
5958

60-
6159
[project.entry-points."patternanalyzer.plugins"]
62-
# Auto-generated: map all discovered plugin modules -> their export symbols
63-
# Selection rules used:
64-
# - Prefer explicit well-known export/class names when present (ENTRY_POINT, PLUGIN, Plugin, make_plugin, load_plugin)
65-
# - Otherwise use the single TestPlugin/VisualPlugin-derived class defined in the module.
66-
# Notes:
67-
# - patternanalyzer.plugins.parallel_helpers defines two test classes; both are registered intentionally.
6860
approximate_entropy = "patternanalyzer.plugins.approximate_entropy:ApproximateEntropyTest"
6961
autocorrelation = "patternanalyzer.plugins.autocorrelation:AutocorrelationTest"
7062
binary_matrix_rank = "patternanalyzer.plugins.binary_matrix_rank:BinaryMatrixRankTest"
@@ -87,10 +79,8 @@ runs = "patternanalyzer.plugins.runs_test:RunsTest"
8779
serial = "patternanalyzer.plugins.serial_test:SerialTest"
8880
vigenere = "patternanalyzer.plugins.vigenere:VigenerePlugin"
8981
xor_const = "patternanalyzer.plugins.xor_const:XOPlugin"
90-
# parallel_helpers exposes two TestPlugin implementations used in tests; keep both entry points.
9182
parallel_quick_stat = "patternanalyzer.plugins.parallel_helpers:QuickStat"
9283
parallel_blocking = "patternanalyzer.plugins.parallel_helpers:BlockingTest"
93-
# New advanced statistical test plugins (Dieharder, TestU01, spectral adv, Hurst)
9484
diehard_birthday_spacings = "patternanalyzer.plugins.diehard_birthday_spacings:BirthdaySpacingsTest"
9585
diehard_overlapping_sums = "patternanalyzer.plugins.diehard_overlapping_sums:OverlappingSumsTest"
9686
diehard_3d_spheres = "patternanalyzer.plugins.diehard_3d_spheres:ThreeDSpheresTest"
@@ -100,23 +90,21 @@ hurst_exponent = "patternanalyzer.plugins.hurst_exponent:HurstExponentTest"
10090
conditional_entropy = "patternanalyzer.plugins.conditional_entropy:ConditionalEntropyTest"
10191
mutual_information = "patternanalyzer.plugins.mutual_information:MutualInformationTest"
10292
transfer_entropy = "patternanalyzer.plugins.transfer_entropy:TransferEntropyTest"
103-
# Machine-learning based anomaly detection plugins (LSTM/GRU, Autoencoder, Classifier labeler)
10493
lstm_gru_anomaly = "patternanalyzer.plugins.lstm_gru_anomaly:LSTMGRUAnomalyPlugin"
10594
autoencoder_anomaly = "patternanalyzer.plugins.autoencoder_anomaly:AutoencoderAnomalyPlugin"
10695
classifier_labeler = "patternanalyzer.plugins.classifier_labeler:ClassifierLabelerPlugin"
107-
# Structural/format analysis plugins added by integration
10896
magic_detector = "patternanalyzer.plugins.magic_detector:MagicDetector"
10997
png_structure = "patternanalyzer.plugins.png_structure:PNGStructure"
11098
zip_structure = "patternanalyzer.plugins.zip_structure:ZIPStructure"
11199
pdf_structure = "patternanalyzer.plugins.pdf_structure:PDFStructure"
112-
# Crypto analysis plugins integrated: ECB detection, frequency/pattern, known constants/S-box search
113100
ecb_detector = "patternanalyzer.plugins.ecb_detector:ECBDetector"
114101
frequency_pattern = "patternanalyzer.plugins.frequency_pattern:FrequencyPattern"
115102
known_constants_search = "patternanalyzer.plugins.known_constants_search:KnownConstantsSearch"
103+
116104
[project.urls]
117105
Homepage = "https://github.com/EdgeTypE/pattern-analyzer"
118106
Repository = "https://github.com/EdgeTypE/pattern-analyzer.git"
119-
Issues = "https://github.com/EdgeTypE/pattern-analyzer/issues"
107+
"Bug Tracker" = "https://github.com/EdgeTypE/pattern-analyzer/issues"
120108

121109
[tool.setuptools.packages.find]
122110
where = ["."]

0 commit comments

Comments
 (0)