pyASDReader 1.2.0__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyasdreader-1.2.2/.codecov.yml +68 -0
- pyasdreader-1.2.2/CHANGELOG.md +282 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/PKG-INFO +9 -68
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/README.md +8 -67
- pyasdreader-1.2.2/coverage.json +1 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/pyASDReader.egg-info/SOURCES.txt +3 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/asd_file_reader.py +6 -1
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/file_attributes.py +5 -5
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/test_asd_file_reader.py +174 -27
- pyasdreader-1.2.2/tests/test_file_attributes.py +137 -0
- pyasdreader-1.2.0/CHANGELOG.md +0 -133
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/.pre-commit-config.yaml +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/LICENSE +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/MANIFEST.in +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/VERSION_MANAGEMENT.md +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/examples/README.md +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/examples/basic_usage.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/pyproject.toml +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/scripts/publish.sh +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/setup.cfg +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/__init__.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/_version.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/constant.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/logger_setup.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/__init__.py +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00000.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00001.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00002.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00000.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00001.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00002.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00003.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00004.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00005.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B009-1-FW300000.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B009-1-FW3R00000.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B174-1-FF300000.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v8sample/v8sample00001.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v8sample/v8sample00002.asd +0 -0
- {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/test_data.py +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
codecov:
|
|
2
|
+
require_ci_to_pass: yes
|
|
3
|
+
notify:
|
|
4
|
+
wait_for_ci: yes
|
|
5
|
+
|
|
6
|
+
coverage:
|
|
7
|
+
precision: 2
|
|
8
|
+
round: down
|
|
9
|
+
range: "70...100"
|
|
10
|
+
|
|
11
|
+
status:
|
|
12
|
+
project:
|
|
13
|
+
default:
|
|
14
|
+
target: auto
|
|
15
|
+
threshold: 1%
|
|
16
|
+
informational: false
|
|
17
|
+
patch:
|
|
18
|
+
default:
|
|
19
|
+
target: auto
|
|
20
|
+
threshold: 1%
|
|
21
|
+
informational: false
|
|
22
|
+
|
|
23
|
+
comment:
|
|
24
|
+
layout: "reach,diff,flags,files,footer"
|
|
25
|
+
behavior: default
|
|
26
|
+
require_changes: false
|
|
27
|
+
require_base: false
|
|
28
|
+
require_head: true
|
|
29
|
+
|
|
30
|
+
flags:
|
|
31
|
+
ubuntu-latest-py3.8:
|
|
32
|
+
carryforward: false
|
|
33
|
+
ubuntu-latest-py3.9:
|
|
34
|
+
carryforward: false
|
|
35
|
+
ubuntu-latest-py3.10:
|
|
36
|
+
carryforward: false
|
|
37
|
+
ubuntu-latest-py3.11:
|
|
38
|
+
carryforward: false
|
|
39
|
+
ubuntu-latest-py3.12:
|
|
40
|
+
carryforward: false
|
|
41
|
+
windows-latest-py3.8:
|
|
42
|
+
carryforward: false
|
|
43
|
+
windows-latest-py3.9:
|
|
44
|
+
carryforward: false
|
|
45
|
+
windows-latest-py3.10:
|
|
46
|
+
carryforward: false
|
|
47
|
+
windows-latest-py3.11:
|
|
48
|
+
carryforward: false
|
|
49
|
+
windows-latest-py3.12:
|
|
50
|
+
carryforward: false
|
|
51
|
+
macos-latest-py3.8:
|
|
52
|
+
carryforward: false
|
|
53
|
+
macos-latest-py3.9:
|
|
54
|
+
carryforward: false
|
|
55
|
+
macos-latest-py3.10:
|
|
56
|
+
carryforward: false
|
|
57
|
+
macos-latest-py3.11:
|
|
58
|
+
carryforward: false
|
|
59
|
+
macos-latest-py3.12:
|
|
60
|
+
carryforward: false
|
|
61
|
+
|
|
62
|
+
ignore:
|
|
63
|
+
- "tests/"
|
|
64
|
+
- "examples/"
|
|
65
|
+
- "docs/"
|
|
66
|
+
- "scripts/"
|
|
67
|
+
- "**/__pycache__"
|
|
68
|
+
- "*.pyc"
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# Changelog - pyASDReader
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/pyASDReader/)
|
|
4
|
+
[](https://github.com/KaiTastic/pyASDReader/releases)
|
|
5
|
+
[](https://semver.org/spec/v2.0.0.html)
|
|
6
|
+
[](https://keepachangelog.com/en/1.0.0/)
|
|
7
|
+
[](https://github.com/KaiTastic/pyASDReader/releases/latest)
|
|
8
|
+
[](https://github.com/KaiTastic/pyASDReader/releases)
|
|
9
|
+
|
|
10
|
+
All notable changes to this project will be documented in this file.
|
|
11
|
+
|
|
12
|
+
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
13
|
+
|
|
14
|
+
## [Unreleased]
|
|
15
|
+
|
|
16
|
+
## [1.2.2] - 2025-10-05
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- 📋 **Codecov Configuration** - Added `.codecov.yml` for comprehensive code coverage tracking
|
|
20
|
+
- Multi-platform coverage flags (Ubuntu, Windows, macOS)
|
|
21
|
+
- Per-Python-version coverage tracking (3.8-3.12)
|
|
22
|
+
- Automatic coverage status checks on PRs
|
|
23
|
+
- Detailed coverage reporting with customizable thresholds
|
|
24
|
+
- ✅ **Enhanced Test Suite** - Significantly expanded test coverage
|
|
25
|
+
- Added `test_file_attributes.py` with 12 comprehensive test cases for FileAttributes class
|
|
26
|
+
- Expanded `test_asd_file_reader.py` with new property tests and validation tests
|
|
27
|
+
- Added tests for spectral data parsing, constituent types, BSTR, and audit events
|
|
28
|
+
- Improved test coverage for file version validation, GPS parsing, and datetime handling
|
|
29
|
+
- 📊 **Coverage Reporting** - Added `coverage.json` for detailed coverage metrics
|
|
30
|
+
- Per-file coverage statistics
|
|
31
|
+
- Function-level coverage tracking
|
|
32
|
+
- Class-level coverage analysis
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- 🏗️ **Improved Code Structure** - Enhanced ASDFile class inheritance
|
|
36
|
+
- `ASDFile` now properly inherits from `FileAttributes` class
|
|
37
|
+
- Better integration of file handling capabilities
|
|
38
|
+
- Improved logger initialization with proper setup in module scope
|
|
39
|
+
- 🔧 **Optimized CI/CD Workflows** - Performance improvements for GitHub Actions
|
|
40
|
+
- Removed redundant pip caching from PyPI verification steps
|
|
41
|
+
- Streamlined publish workflows for faster deployments
|
|
42
|
+
- 📚 **Updated Documentation** - Improved README formatting
|
|
43
|
+
- Fixed test workflow badge to reference correct workflow file
|
|
44
|
+
- Cleaned up citation section for better readability
|
|
45
|
+
- Removed verbose contribution and community sections for conciseness
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
- 🐛 **Fixed FileAttributes Methods** - Corrected attribute naming inconsistencies
|
|
49
|
+
- Fixed `set_file_name()` method to use `self.filename` instead of `self.file_name`
|
|
50
|
+
- Fixed `set_file_path()` method to use `self.filepath` instead of `self.file_path`
|
|
51
|
+
- Improved consistency across FileAttributes class methods
|
|
52
|
+
- 🔧 **Enhanced Test Robustness** - Improved test initialization and execution
|
|
53
|
+
- Fixed ASDFile test initialization to work without parent class conflicts
|
|
54
|
+
- Added proper subTest contexts for all file iteration tests
|
|
55
|
+
- Improved error handling in test cases
|
|
56
|
+
|
|
57
|
+
### Removed
|
|
58
|
+
- ❌ **CITATION.cff** - Temporarily removed to streamline package metadata
|
|
59
|
+
- Citation information now maintained in README only
|
|
60
|
+
- Reduces maintenance overhead for version updates
|
|
61
|
+
- GitHub citation feature still available via repository metadata
|
|
62
|
+
|
|
63
|
+
### Technical Improvements
|
|
64
|
+
- Better test organization with comprehensive property testing
|
|
65
|
+
- Improved code coverage from ~61% to higher levels across core modules
|
|
66
|
+
- Enhanced file attribute handling with proper inheritance chain
|
|
67
|
+
- More reliable CI/CD pipeline with optimized caching strategy
|
|
68
|
+
- Better separation of concerns between file I/O and ASD parsing logic
|
|
69
|
+
|
|
70
|
+
## [1.2.1] - 2025-10-05
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
- ✨ **CITATION.cff** - Academic citation file for proper software citation
|
|
74
|
+
- Includes author information with ORCID placeholder
|
|
75
|
+
- Comprehensive metadata (abstract, keywords, repository info)
|
|
76
|
+
- MIT license specification
|
|
77
|
+
- Version and release date tracking
|
|
78
|
+
- 📤 CITATION.cff now included in GitHub releases
|
|
79
|
+
- 🔄 Automatic CITATION.cff version and date updates during release
|
|
80
|
+
- 📊 Codecov integration for code coverage reporting
|
|
81
|
+
- Automatic coverage upload after test runs
|
|
82
|
+
- Per-platform and per-Python-version coverage tracking
|
|
83
|
+
- Coverage badges support
|
|
84
|
+
|
|
85
|
+
### Changed
|
|
86
|
+
- 🚀 Enhanced CI/CD workflows with performance improvements:
|
|
87
|
+
- Upgraded `actions/setup-python` from v4 to v5
|
|
88
|
+
- Added pip caching to all workflows for faster builds
|
|
89
|
+
- Streamlined cache configuration (removed redundant cache steps)
|
|
90
|
+
- Improved cache key structure using pyproject.toml
|
|
91
|
+
- 🧪 Improved test workflow (`python-package.yml`):
|
|
92
|
+
- Better pip caching strategy
|
|
93
|
+
- Enhanced coverage reporting with Codecov
|
|
94
|
+
- More efficient dependency caching
|
|
95
|
+
- 📦 Enhanced PyPI publishing workflow:
|
|
96
|
+
- Added CITATION.cff to release assets
|
|
97
|
+
- Automatic citation file updates on tag releases
|
|
98
|
+
- Improved release notes generation
|
|
99
|
+
- 📚 Updated README.md with better formatting and organization
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
- 🔧 Fixed package metadata verification using `importlib.metadata` instead of manual version checking
|
|
103
|
+
- More accurate and reliable version detection
|
|
104
|
+
- Better compatibility with different Python versions
|
|
105
|
+
- Improved error handling in CI/CD pipelines
|
|
106
|
+
|
|
107
|
+
### Technical Improvements
|
|
108
|
+
- Reduced workflow execution time through better caching
|
|
109
|
+
- Enhanced CI/CD reliability with updated actions
|
|
110
|
+
- Improved maintainability of GitHub Actions workflows
|
|
111
|
+
- Better separation of concerns in workflow steps
|
|
112
|
+
- More robust release automation
|
|
113
|
+
|
|
114
|
+
## [1.2.0] - 2025-10-05
|
|
115
|
+
|
|
116
|
+
### Changed
|
|
117
|
+
- 🔄 **Package renamed** from `pyASD` to `pyASDReader` across all configuration files
|
|
118
|
+
- 📦 Updated package configuration in pyproject.toml with improved metadata
|
|
119
|
+
- 🏗️ **Major code structure refactoring** for improved readability and maintainability
|
|
120
|
+
- 📚 Significantly enhanced README.md with comprehensive documentation
|
|
121
|
+
- 🔧 Modernized dependency management with expanded dev tools
|
|
122
|
+
- 🧪 Improved CI/CD workflows for better reliability and accuracy
|
|
123
|
+
- 📝 Updated all GitHub Actions workflows to use correct branch references (main)
|
|
124
|
+
- 🎯 Enhanced pre-commit configuration for better code quality
|
|
125
|
+
- 🚀 Improved publish scripts with better error handling
|
|
126
|
+
|
|
127
|
+
### Added
|
|
128
|
+
- ✨ **CITATION.cff** - Formal citation support for academic use
|
|
129
|
+
- 📚 **VERSION_MANAGEMENT.md** - Comprehensive version management documentation
|
|
130
|
+
- 📝 **examples/README.md** - Detailed examples documentation
|
|
131
|
+
- 📝 **examples/basic_usage.py** - Practical usage examples
|
|
132
|
+
- 🛠️ Enhanced development dependencies:
|
|
133
|
+
- Added `black>=21.0.0` for code formatting
|
|
134
|
+
- Added `isort>=5.0.0` for import sorting
|
|
135
|
+
- Added `build>=0.7.0` for package building
|
|
136
|
+
- Added `twine>=3.0.0` for PyPI publishing
|
|
137
|
+
- Added `pre-commit>=2.15.0` for git hooks
|
|
138
|
+
- Added `tox>=3.20.0` for testing automation
|
|
139
|
+
- 🎨 Added maintainers field to project metadata
|
|
140
|
+
- 📦 Added "all" optional dependencies group for complete installation
|
|
141
|
+
- 🔗 Enhanced project URLs with Source and Issues links
|
|
142
|
+
- 📄 Improved README content-type specification in pyproject.toml
|
|
143
|
+
- ✅ Enhanced package metadata verification using importlib.metadata
|
|
144
|
+
- 🔍 Improved CI workflows with better testing and validation
|
|
145
|
+
|
|
146
|
+
### Removed
|
|
147
|
+
- ❌ **Deleted requirements.txt** (consolidated into pyproject.toml)
|
|
148
|
+
- ❌ **Deleted requirements-dev.txt** (consolidated into pyproject.toml)
|
|
149
|
+
- ❌ **Deleted setup.py** (fully migrated to pyproject.toml)
|
|
150
|
+
|
|
151
|
+
### Fixed
|
|
152
|
+
- 🔧 Fixed package metadata verification in CI/CD workflows
|
|
153
|
+
- ✅ Corrected test file naming convention (test_ASD_File_Reader.py → test_asd_file_reader.py)
|
|
154
|
+
- 🔗 Updated all repository URLs from pyASD to pyASDReader
|
|
155
|
+
- 📝 Fixed MANIFEST.in to properly include package data
|
|
156
|
+
- 🐛 Improved error handling in asd_file_reader.py
|
|
157
|
+
|
|
158
|
+
### Technical Improvements
|
|
159
|
+
- Centralized all dependencies in pyproject.toml optional-dependencies
|
|
160
|
+
- Improved package structure with proper namespace configuration
|
|
161
|
+
- Enhanced setuptools_scm integration for version management
|
|
162
|
+
- Better test coverage configuration targeting pyASDReader module
|
|
163
|
+
- Streamlined build and publish workflows
|
|
164
|
+
|
|
165
|
+
## [1.1.0] - 2025-10-05
|
|
166
|
+
|
|
167
|
+
### Fixed
|
|
168
|
+
- 🔴 **Critical**: Removed broken root `__init__.py` that caused ModuleNotFoundError
|
|
169
|
+
- 🔴 **Critical**: Fixed pyproject.toml package configuration for proper pip installation
|
|
170
|
+
- 🔴 **Critical**: Unified version management (removed conflicting version definitions)
|
|
171
|
+
- 🔴 **Critical**: Fixed GitHub Actions branch configuration (now triggers on main branch)
|
|
172
|
+
- 🔴 **Critical**: Removed conflicting setup.py (now using only pyproject.toml)
|
|
173
|
+
- 🔴 Fixed binary flag error in SWIR2_TEC_ALARM detection (0x16 → 0x10)
|
|
174
|
+
- 🟠 Fixed read() method to properly return False on file errors
|
|
175
|
+
- ⚠️ Fixed logger undefined error by adding module-level logger
|
|
176
|
+
- ⚠️ Added Python 3.8 compatibility with `from __future__ import annotations`
|
|
177
|
+
|
|
178
|
+
### Changed
|
|
179
|
+
- 🔄 **Repository renamed** from `ASD_File_Reader` to `pyASDReader` for consistency with PyPI package name
|
|
180
|
+
- 📦 **PyPI package name**: `pyASDReader` (install: `pip install pyASDReader`)
|
|
181
|
+
- 🏠 **New repository URL**: https://github.com/KaiTastic/pyASDReader
|
|
182
|
+
- ℹ️ **Module import**: `from pyASDReader import ASDFile` (improved package exports)
|
|
183
|
+
- 🧪 GitHub Actions now tests stable Python versions only (3.8-3.12, removed 3.13 and 3.x)
|
|
184
|
+
- 🧪 Removed `continue-on-error` from CI to properly report test failures
|
|
185
|
+
- 📊 Test matrix reduced from 21 to 15 combinations for better stability
|
|
186
|
+
- Modernized dependency management: moved all dependencies to pyproject.toml optional-dependencies
|
|
187
|
+
- Updated all CI/CD workflows to use `pip install -e ".[dev]"` instead of requirements files
|
|
188
|
+
- Enhanced README with Development Installation section
|
|
189
|
+
- Standardized version number to 1.1.0 across all configuration files
|
|
190
|
+
|
|
191
|
+
### Added
|
|
192
|
+
- ✨ Automatic version management using setuptools-scm
|
|
193
|
+
- 🤖 Dual GitHub Actions workflows: dev branch → TestPyPI, tag → PyPI
|
|
194
|
+
- 📚 Comprehensive documentation for version management and publishing
|
|
195
|
+
- 📝 CLAUDE.md - Guide for Claude Code integration
|
|
196
|
+
- 📝 VERSION_MANAGEMENT.md - Complete guide for version management with Git tags and setuptools_scm
|
|
197
|
+
- 📝 SECURITY.md - Security policy and vulnerability reporting guidelines
|
|
198
|
+
- 📝 PROJECT_IMPROVEMENT_ANALYSIS.md - Detailed analysis of 26 issues
|
|
199
|
+
- 📝 FIXES_APPLIED.md - First round fix summary
|
|
200
|
+
- 📝 ADDITIONAL_IMPROVEMENTS.md - Second round analysis of 15 issues
|
|
201
|
+
- 📝 ROUND2_FIXES_APPLIED.md - Second round fix summary
|
|
202
|
+
- ✅ Support for auto-loading files: `ASDFile(filepath)` constructor
|
|
203
|
+
- Added examples/ directory with basic usage examples
|
|
204
|
+
- Enhanced project URLs in pyproject.toml (Issues, Source, Changelog, PyPI)
|
|
205
|
+
- Comprehensive optional-dependencies groups: dev, docs, all
|
|
206
|
+
|
|
207
|
+
### Removed
|
|
208
|
+
- ❌ Deleted conflicting `setup.py`
|
|
209
|
+
- ❌ Deleted broken root `__init__.py`
|
|
210
|
+
- ❌ Deleted requirements.txt (moved to pyproject.toml)
|
|
211
|
+
- ❌ Deleted requirements-dev.txt (moved to pyproject.toml)
|
|
212
|
+
- ❌ Removed duplicate v1.0.0 git tag
|
|
213
|
+
|
|
214
|
+
### Note
|
|
215
|
+
- Old repository URLs will redirect automatically
|
|
216
|
+
- No breaking changes for existing users - all fixes are backward compatible
|
|
217
|
+
- Package is now fully functional (fixed from "broken" state)
|
|
218
|
+
- Version management now uses Git tags as single source of truth
|
|
219
|
+
|
|
220
|
+
## [1.0.1] - 2025-08-29
|
|
221
|
+
|
|
222
|
+
### Added
|
|
223
|
+
|
|
224
|
+
- Enhanced README documentation with compatibility testing details
|
|
225
|
+
- Improved GitHub Actions CI/CD workflow with multi-platform testing
|
|
226
|
+
- Extended Python version support (3.8-3.13)
|
|
227
|
+
- Code quality improvements and linting integration (flake8)
|
|
228
|
+
- Comprehensive badge system showing CI status, version, Python compatibility, and license
|
|
229
|
+
|
|
230
|
+
### Changed
|
|
231
|
+
|
|
232
|
+
- Updated documentation structure and clarity
|
|
233
|
+
- Improved project organization and maintainability
|
|
234
|
+
- Enhanced cross-platform compatibility testing
|
|
235
|
+
|
|
236
|
+
### Fixed
|
|
237
|
+
|
|
238
|
+
- Minor documentation formatting issues
|
|
239
|
+
- CI/CD pipeline optimizations
|
|
240
|
+
|
|
241
|
+
## [1.0.0] - 2025-03-12
|
|
242
|
+
|
|
243
|
+
### Added
|
|
244
|
+
|
|
245
|
+
- Initial release with full ASD file format support (versions 1-8)
|
|
246
|
+
- Comprehensive parsing capabilities for all ASD file structures:
|
|
247
|
+
- Spectrum File Header and metadata
|
|
248
|
+
- Spectrum Data parsing
|
|
249
|
+
- Reference File Header and Reference Data
|
|
250
|
+
- Classifier Data support
|
|
251
|
+
- Dependent Variables handling
|
|
252
|
+
- Calibration Header and calibration series data
|
|
253
|
+
- Audit Log parsing
|
|
254
|
+
- Digital signature support
|
|
255
|
+
- Benchmark testing against ASD ViewSpecPro 6.2.0 for accuracy validation
|
|
256
|
+
- Support for multiple ASD instrument types:
|
|
257
|
+
- ASD AgriSpec, FieldSpec series, HandHeld 2, LabSpec series, TerraSpec series
|
|
258
|
+
- Spectral data processing capabilities:
|
|
259
|
+
- Digital number extraction
|
|
260
|
+
- Reflectance calculations (with derivatives)
|
|
261
|
+
- Absolute reflectance
|
|
262
|
+
- log(1/R) calculations
|
|
263
|
+
- Transmittance support
|
|
264
|
+
- Comprehensive unit test suite
|
|
265
|
+
- MIT License
|
|
266
|
+
- Python package structure with setuptools support
|
|
267
|
+
|
|
268
|
+
### Features
|
|
269
|
+
|
|
270
|
+
- **File Format Compatibility**: Complete support for ASD file format versions 1 through 8
|
|
271
|
+
- **Multi-instrument Support**: Works with all major ASD spectroradiometer models
|
|
272
|
+
- **Data Extraction**: Full access to all data blocks within ASD files
|
|
273
|
+
- **Calculation Support**: Built-in spectral calculations and transformations
|
|
274
|
+
- **Validation**: Benchmark-tested against official ASD software
|
|
275
|
+
|
|
276
|
+
## Upcoming Features
|
|
277
|
+
|
|
278
|
+
- [ ] Spectral discontinuities correction (Hueni & ASD Parabolic methods)
|
|
279
|
+
- [ ] File format converter (ASCII export functionality)
|
|
280
|
+
- [ ] Enhanced radiometric and statistical tools
|
|
281
|
+
- [ ] Extended instrument support and metadata extraction
|
|
282
|
+
- [ ] PyPI package distribution
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyASDReader
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: A Python library for reading and parsing all versions of ASD binary spectral files
|
|
5
5
|
Author-email: Kai Cao <caokai_cgs@163.com>
|
|
6
6
|
Maintainer-email: Kai Cao <caokai_cgs@163.com>
|
|
@@ -86,7 +86,7 @@ Dynamic: license-file
|
|
|
86
86
|
[](https://pypi.org/project/pyASDReader/)
|
|
87
87
|
[](https://pypi.org/project/pyASDReader/)
|
|
88
88
|
[](https://github.com/KaiTastic/pyASDReader/blob/main/LICENSE)
|
|
89
|
-
[](https://github.com/KaiTastic/pyASDReader/actions)
|
|
90
90
|
[](https://codecov.io/gh/KaiTastic/pyASDReader)
|
|
91
91
|
|
|
92
92
|
pyASDReader is a robust Python library designed to read and parse all versions (v1-v8) of ASD (Analytical Spectral Devices) binary spectral files. It provides seamless access to spectral data, metadata, and calibration information from various ASD instruments including FieldSpec, LabSpec, TerraSpec, and more.
|
|
@@ -388,80 +388,27 @@ Comprehensive export capabilities beyond the standard ASCII format:
|
|
|
388
388
|
- Integration with popular spectral analysis libraries
|
|
389
389
|
|
|
390
390
|
|
|
391
|
-
|
|
392
|
-
## Contributing
|
|
393
|
-
|
|
394
|
-
### Development Setup
|
|
395
|
-
|
|
396
|
-
1. **Fork and Clone**:
|
|
397
|
-
```bash
|
|
398
|
-
git clone https://github.com/yourusername/pyASDReader.git
|
|
399
|
-
cd pyASDReader
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
2. **Create Development Environment**:
|
|
403
|
-
```bash
|
|
404
|
-
python -m venv venv
|
|
405
|
-
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
406
|
-
pip install -e ".[dev]"
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
3. **Run Tests**:
|
|
410
|
-
```bash
|
|
411
|
-
pytest tests/
|
|
412
|
-
python -m pytest --cov=src --cov-report=html
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
### Contribution Guidelines
|
|
416
|
-
|
|
417
|
-
- **Bug Reports**: Use GitHub Issues with detailed reproduction steps
|
|
418
|
-
- **Feature Requests**: Open an issue to discuss before implementing
|
|
419
|
-
- **Code Style**: Follow PEP 8 and use provided pre-commit hooks
|
|
420
|
-
- **Testing**: Add tests for new features and ensure all tests pass
|
|
421
|
-
- **Documentation**: Update README and docstrings for any API changes
|
|
422
|
-
|
|
423
|
-
### Development Workflow
|
|
424
|
-
|
|
425
|
-
1. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
426
|
-
2. Make your changes with appropriate tests
|
|
427
|
-
3. Run the test suite: `pytest`
|
|
428
|
-
4. Commit your changes: `git commit -m 'Add amazing feature'`
|
|
429
|
-
5. Push to your fork: `git push origin feature/amazing-feature`
|
|
430
|
-
6. Submit a Pull Request
|
|
431
|
-
|
|
432
|
-
## � Support & Community
|
|
433
|
-
|
|
434
|
-
### Getting Help
|
|
435
|
-
|
|
436
|
-
- 📋 **GitHub Issues**: [Report bugs or request features](https://github.com/KaiTastic/pyASDReader/issues)
|
|
437
|
-
- 📧 **Email**: `caokai_cgs@163.com` for direct support
|
|
438
|
-
- 🔒 **Security**: Report vulnerabilities via our [Security Policy](SECURITY.md)
|
|
439
|
-
|
|
440
|
-
### Community Guidelines
|
|
441
|
-
|
|
442
|
-
- Be respectful and inclusive
|
|
443
|
-
- Help others learn and grow
|
|
444
|
-
- Share knowledge and experiences
|
|
445
|
-
- Provide constructive feedback
|
|
446
|
-
|
|
447
391
|
## Citation
|
|
448
392
|
|
|
449
|
-
If you use pyASDReader in your research, please cite:
|
|
393
|
+
If you use pyASDReader in your research, please cite it using the following information:
|
|
450
394
|
|
|
395
|
+
**BibTeX format**:
|
|
451
396
|
```bibtex
|
|
452
397
|
@software{cao2025pyasdreader,
|
|
453
398
|
author = {Cao, Kai},
|
|
454
399
|
title = {pyASDReader: A Python Library for ASD Spectral File Reading},
|
|
455
400
|
year = {2025},
|
|
456
401
|
url = {https://github.com/KaiTastic/pyASDReader},
|
|
457
|
-
version = {1.
|
|
402
|
+
version = {1.2.1}
|
|
458
403
|
}
|
|
459
404
|
```
|
|
460
405
|
|
|
461
406
|
**Plain text citation**:
|
|
462
|
-
|
|
407
|
+
```
|
|
408
|
+
Cao, Kai. (2025). pyASDReader: A Python Library for ASD Spectral File Reading. Available at: https://github.com/KaiTastic/pyASDReader
|
|
409
|
+
```
|
|
463
410
|
|
|
464
|
-
##
|
|
411
|
+
## References
|
|
465
412
|
|
|
466
413
|
### Official Documentation
|
|
467
414
|
- [ASD Inc. (2017). ASD File Format: Version 8 (Revision): 1-10](https://www.malvernpanalytical.com/en/learn/knowledge-center/user-manuals/asd-file-format-v8)
|
|
@@ -476,12 +423,6 @@ If you use pyASDReader in your research, please cite:
|
|
|
476
423
|
|
|
477
424
|
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for complete details.
|
|
478
425
|
|
|
479
|
-
### Built With
|
|
480
|
-
|
|
481
|
-
- [NumPy](https://numpy.org/) - Numerical computing library
|
|
482
|
-
- [Python](https://python.org/) - Programming language
|
|
483
|
-
- [pytest](https://pytest.org/) - Testing framework
|
|
484
|
-
|
|
485
426
|
---
|
|
486
427
|
|
|
487
428
|
<div align="center">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://pypi.org/project/pyASDReader/)
|
|
4
4
|
[](https://pypi.org/project/pyASDReader/)
|
|
5
5
|
[](https://github.com/KaiTastic/pyASDReader/blob/main/LICENSE)
|
|
6
|
-
[](https://github.com/KaiTastic/pyASDReader/actions)
|
|
7
7
|
[](https://codecov.io/gh/KaiTastic/pyASDReader)
|
|
8
8
|
|
|
9
9
|
pyASDReader is a robust Python library designed to read and parse all versions (v1-v8) of ASD (Analytical Spectral Devices) binary spectral files. It provides seamless access to spectral data, metadata, and calibration information from various ASD instruments including FieldSpec, LabSpec, TerraSpec, and more.
|
|
@@ -305,80 +305,27 @@ Comprehensive export capabilities beyond the standard ASCII format:
|
|
|
305
305
|
- Integration with popular spectral analysis libraries
|
|
306
306
|
|
|
307
307
|
|
|
308
|
-
|
|
309
|
-
## Contributing
|
|
310
|
-
|
|
311
|
-
### Development Setup
|
|
312
|
-
|
|
313
|
-
1. **Fork and Clone**:
|
|
314
|
-
```bash
|
|
315
|
-
git clone https://github.com/yourusername/pyASDReader.git
|
|
316
|
-
cd pyASDReader
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
2. **Create Development Environment**:
|
|
320
|
-
```bash
|
|
321
|
-
python -m venv venv
|
|
322
|
-
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
323
|
-
pip install -e ".[dev]"
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
3. **Run Tests**:
|
|
327
|
-
```bash
|
|
328
|
-
pytest tests/
|
|
329
|
-
python -m pytest --cov=src --cov-report=html
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### Contribution Guidelines
|
|
333
|
-
|
|
334
|
-
- **Bug Reports**: Use GitHub Issues with detailed reproduction steps
|
|
335
|
-
- **Feature Requests**: Open an issue to discuss before implementing
|
|
336
|
-
- **Code Style**: Follow PEP 8 and use provided pre-commit hooks
|
|
337
|
-
- **Testing**: Add tests for new features and ensure all tests pass
|
|
338
|
-
- **Documentation**: Update README and docstrings for any API changes
|
|
339
|
-
|
|
340
|
-
### Development Workflow
|
|
341
|
-
|
|
342
|
-
1. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
343
|
-
2. Make your changes with appropriate tests
|
|
344
|
-
3. Run the test suite: `pytest`
|
|
345
|
-
4. Commit your changes: `git commit -m 'Add amazing feature'`
|
|
346
|
-
5. Push to your fork: `git push origin feature/amazing-feature`
|
|
347
|
-
6. Submit a Pull Request
|
|
348
|
-
|
|
349
|
-
## � Support & Community
|
|
350
|
-
|
|
351
|
-
### Getting Help
|
|
352
|
-
|
|
353
|
-
- 📋 **GitHub Issues**: [Report bugs or request features](https://github.com/KaiTastic/pyASDReader/issues)
|
|
354
|
-
- 📧 **Email**: `caokai_cgs@163.com` for direct support
|
|
355
|
-
- 🔒 **Security**: Report vulnerabilities via our [Security Policy](SECURITY.md)
|
|
356
|
-
|
|
357
|
-
### Community Guidelines
|
|
358
|
-
|
|
359
|
-
- Be respectful and inclusive
|
|
360
|
-
- Help others learn and grow
|
|
361
|
-
- Share knowledge and experiences
|
|
362
|
-
- Provide constructive feedback
|
|
363
|
-
|
|
364
308
|
## Citation
|
|
365
309
|
|
|
366
|
-
If you use pyASDReader in your research, please cite:
|
|
310
|
+
If you use pyASDReader in your research, please cite it using the following information:
|
|
367
311
|
|
|
312
|
+
**BibTeX format**:
|
|
368
313
|
```bibtex
|
|
369
314
|
@software{cao2025pyasdreader,
|
|
370
315
|
author = {Cao, Kai},
|
|
371
316
|
title = {pyASDReader: A Python Library for ASD Spectral File Reading},
|
|
372
317
|
year = {2025},
|
|
373
318
|
url = {https://github.com/KaiTastic/pyASDReader},
|
|
374
|
-
version = {1.
|
|
319
|
+
version = {1.2.1}
|
|
375
320
|
}
|
|
376
321
|
```
|
|
377
322
|
|
|
378
323
|
**Plain text citation**:
|
|
379
|
-
|
|
324
|
+
```
|
|
325
|
+
Cao, Kai. (2025). pyASDReader: A Python Library for ASD Spectral File Reading. Available at: https://github.com/KaiTastic/pyASDReader
|
|
326
|
+
```
|
|
380
327
|
|
|
381
|
-
##
|
|
328
|
+
## References
|
|
382
329
|
|
|
383
330
|
### Official Documentation
|
|
384
331
|
- [ASD Inc. (2017). ASD File Format: Version 8 (Revision): 1-10](https://www.malvernpanalytical.com/en/learn/knowledge-center/user-manuals/asd-file-format-v8)
|
|
@@ -393,12 +340,6 @@ If you use pyASDReader in your research, please cite:
|
|
|
393
340
|
|
|
394
341
|
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for complete details.
|
|
395
342
|
|
|
396
|
-
### Built With
|
|
397
|
-
|
|
398
|
-
- [NumPy](https://numpy.org/) - Numerical computing library
|
|
399
|
-
- [Python](https://python.org/) - Programming language
|
|
400
|
-
- [pytest](https://pytest.org/) - Testing framework
|
|
401
|
-
|
|
402
343
|
---
|
|
403
344
|
|
|
404
345
|
<div align="center">
|