generated from KOLANICH/python_project_boilerplate.py
Decodes the info encoded in HDD model names.
decode
extract
hdd
hgst
hitachi
model
model-number
parsing
part-number
samsung
seagate
toshiba
wd
western-digital
- Python 99.3%
- Shell 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .ci | ||
| .github | ||
| dataset | ||
| HDDModelDecoder | ||
| learn | ||
| tests | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| Code_Of_Conduct.md | ||
| HDDModelDecoder_Logo.svg | ||
| MANIFEST.in | ||
| pyproject.toml | ||
| ReadMe.md | ||
| UNLICENSE | ||
HDDModelDecoder.py 
wheels:
using XGBoost for ML(works without XGBoost, but ML-based predictions are unavailable)pure python- not very implemented yet.
Decodes info hidden in HDD model names.
print(HDDModelDecoder.decodeModel("ST4000DM004")) # {'vendor': 'Seagate', 'capacity': 4000, 'segment': 'Mainstream', 'attributes': '004'}
print(HDDModelDecoder.decodeModel("ST1000VX000")) # {'vendor': 'Seagate', 'capacity': 1000, 'segment': 'Surveillance', 'attributes': '000'}
print(HDDModelDecoder.decodeModel("ST500LM030")) # {'vendor': 'Seagate', 'capacity': 500, 'segment': 'Laptop Mainstream', 'attributes': '030'}
print(HDDModelDecoder.decodeModel("ST4000DM005")) # {'vendor': 'Seagate', 'capacity': 4000, 'segment': 'Mainstream', 'attributes': '005'}
print(HDDModelDecoder.decodeModel("ST95005620AS")) # {'vendor': 'Seagate', 'form_factor': {'form_factor': 2.5, 'height': 0.748}, 'capacity': 5005.62 (WRONG!), 'interface': 'SATA'}
print(HDDModelDecoder.decodeModel("HDN724040ALE640")) # {'vendor': 'HGST', 'family': 'Deskstar', 'series': 'NAS', 'rpm': 7200, 'top_capacity': 4000, 'capacity': 4000, 'generation_code': 'A', 'height': 1, 'interface': {'interface': 'SATA', 'speed': 6}, 'feature_code': '4', 'buffer_size': 64, 'data_security_mode': 'Instant Secure Erase'}
print(HDDModelDecoder.decodeModel("HDN724030ALE640")) # {'vendor': 'HGST', 'family': 'Deskstar', 'series': 'NAS', 'rpm': 7200, 'top_capacity': 4000, 'capacity': 3000, 'generation_code': 'A', 'height': 1, 'interface': {'interface': 'SATA', 'speed': 6}, 'feature_code': '4', 'buffer_size': 64, 'data_security_mode': 'Instant Secure Erase'}
print(HDDModelDecoder.decodeModel("HTS721010A9E630")) # {'vendor': 'HGST', 'family': 'Travelstar', 'series': 'Standard', 'rpm': 7200, 'top_capacity': 1000, 'capacity': 1000, 'generation_code': 'A', 'height': 0.374, 'interface': {'interface': 'SATA', 'speed': 6}, 'feature_code': '3', 'buffer_size': 32, 'data_security_mode': 'Instant Secure Erase'}
print(HDDModelDecoder.decodeModel("HTE721010A9E630")) # {'vendor': 'HGST', 'family': 'Travelstar', 'series': 'Enhanced Availability', 'rpm': 7200, 'top_capacity': 1000, 'capacity': 1000, 'generation_code': 'A', 'height': 0.374, 'interface': {'interface': 'SATA', 'speed': 6}, 'feature_code': '3', 'buffer_size': 32, 'data_security_mode': 'Instant Secure Erase'}
print(HDDModelDecoder.decodeModel("HUS726060ALE614")) # {'vendor': 'HGST', 'family': 'Ultrastar', 'series': 'Standard', 'rpm': 7200, 'top_capacity': 6000, 'capacity': 6000, 'generation_code': 'A', 'height': 1, 'interface': {'interface': 'SATA', 'speed': 6}, 'feature_code': '1', 'data_security_mode': 'Secure Erase (overwrite only)'}
print(HDDModelDecoder.decodeModel("HDP725025GLA380")) # {'vendor': 'HGST', 'family': 'Deskstar', 'series': 'P Series', 'rpm': 7200, 'top_capacity': 5000, 'capacity': 2500, 'generation_code': 'G', 'height': 1, 'interface': {'interface': 'SATA', 'speed': 3}, 'feature_code': '8', 'buffer_size': 8, 'data_security_mode': 'Instant Secure Erase'}
Sources of information
- HGST Datasheets
- WD Manuals: Model Number Format for OEM and Distribution Channels and Legacy Model and Order Numbers
- Toshiba website
- "Understanding Hard Drive Model Numbers" forum post
- "Western Digital hard drives - deciphering the extended model #" forum post
- Samsung datasheets and Product selection guides
Dependencies
- Optionally
xgboost, if you want non-HGST WD drives series.
Building
For building with ML you will also need