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.
Files changed (40) hide show
  1. pyasdreader-1.2.2/.codecov.yml +68 -0
  2. pyasdreader-1.2.2/CHANGELOG.md +282 -0
  3. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/PKG-INFO +9 -68
  4. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/README.md +8 -67
  5. pyasdreader-1.2.2/coverage.json +1 -0
  6. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/pyASDReader.egg-info/SOURCES.txt +3 -0
  7. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/asd_file_reader.py +6 -1
  8. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/file_attributes.py +5 -5
  9. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/test_asd_file_reader.py +174 -27
  10. pyasdreader-1.2.2/tests/test_file_attributes.py +137 -0
  11. pyasdreader-1.2.0/CHANGELOG.md +0 -133
  12. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/.pre-commit-config.yaml +0 -0
  13. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/LICENSE +0 -0
  14. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/MANIFEST.in +0 -0
  15. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/VERSION_MANAGEMENT.md +0 -0
  16. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/examples/README.md +0 -0
  17. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/examples/basic_usage.py +0 -0
  18. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/pyproject.toml +0 -0
  19. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/scripts/publish.sh +0 -0
  20. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/setup.cfg +0 -0
  21. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/__init__.py +0 -0
  22. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/_version.py +0 -0
  23. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/constant.py +0 -0
  24. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/src/logger_setup.py +0 -0
  25. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/__init__.py +0 -0
  26. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00000.asd +0 -0
  27. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00001.asd +0 -0
  28. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v6sample/v6sample00002.asd +0 -0
  29. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00000.asd +0 -0
  30. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00001.asd +0 -0
  31. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00002.asd +0 -0
  32. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00003.asd +0 -0
  33. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00004.asd +0 -0
  34. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample/v7sample00005.asd +0 -0
  35. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B009-1-FW300000.asd +0 -0
  36. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B009-1-FW3R00000.asd +0 -0
  37. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v7sample_field_spectroscopy/44231B174-1-FF300000.asd +0 -0
  38. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v8sample/v8sample00001.asd +0 -0
  39. {pyasdreader-1.2.0 → pyasdreader-1.2.2}/tests/sample_data/v8sample/v8sample00002.asd +0 -0
  40. {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
+ [![PyPI version](https://img.shields.io/pypi/v/pyASDReader.svg)](https://pypi.org/project/pyASDReader/)
4
+ [![Version](https://img.shields.io/badge/version-v1.1.0-blue.svg)](https://github.com/KaiTastic/pyASDReader/releases)
5
+ [![Semantic Versioning](https://img.shields.io/badge/semver-2.0.0-green.svg)](https://semver.org/spec/v2.0.0.html)
6
+ [![Keep a Changelog](https://img.shields.io/badge/changelog-Keep%20a%20Changelog-orange.svg)](https://keepachangelog.com/en/1.0.0/)
7
+ [![Latest Release](https://img.shields.io/github/v/release/KaiTastic/pyASDReader)](https://github.com/KaiTastic/pyASDReader/releases/latest)
8
+ [![Release Date](https://img.shields.io/github/release-date/KaiTastic/pyASDReader)](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.0
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
  [![PyPI version](https://img.shields.io/pypi/v/pyASDReader?style=flat-square)](https://pypi.org/project/pyASDReader/)
87
87
  [![Python versions](https://img.shields.io/pypi/pyversions/pyASDReader?style=flat-square)](https://pypi.org/project/pyASDReader/)
88
88
  [![License](https://img.shields.io/github/license/KaiTastic/pyASDReader?style=flat-square)](https://github.com/KaiTastic/pyASDReader/blob/main/LICENSE)
89
- [![Tests](https://img.shields.io/github/actions/workflow/status/KaiTastic/pyASDReader/test.yml?branch=main&label=tests&style=flat-square)](https://github.com/KaiTastic/pyASDReader/actions)
89
+ [![Tests](https://img.shields.io/github/actions/workflow/status/KaiTastic/pyASDReader/python-package.yml?branch=main&label=tests&style=flat-square)](https://github.com/KaiTastic/pyASDReader/actions)
90
90
  [![Coverage](https://img.shields.io/codecov/c/github/KaiTastic/pyASDReader?style=flat-square)](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.0.0}
402
+ version = {1.2.1}
458
403
  }
459
404
  ```
460
405
 
461
406
  **Plain text citation**:
462
- > Cao, Kai. (2025). pyASDReader: A Python Library for ASD Spectral File Reading. https://github.com/KaiTastic/pyASDReader
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
- ## 📖 References
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
  [![PyPI version](https://img.shields.io/pypi/v/pyASDReader?style=flat-square)](https://pypi.org/project/pyASDReader/)
4
4
  [![Python versions](https://img.shields.io/pypi/pyversions/pyASDReader?style=flat-square)](https://pypi.org/project/pyASDReader/)
5
5
  [![License](https://img.shields.io/github/license/KaiTastic/pyASDReader?style=flat-square)](https://github.com/KaiTastic/pyASDReader/blob/main/LICENSE)
6
- [![Tests](https://img.shields.io/github/actions/workflow/status/KaiTastic/pyASDReader/test.yml?branch=main&label=tests&style=flat-square)](https://github.com/KaiTastic/pyASDReader/actions)
6
+ [![Tests](https://img.shields.io/github/actions/workflow/status/KaiTastic/pyASDReader/python-package.yml?branch=main&label=tests&style=flat-square)](https://github.com/KaiTastic/pyASDReader/actions)
7
7
  [![Coverage](https://img.shields.io/codecov/c/github/KaiTastic/pyASDReader?style=flat-square)](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.0.0}
319
+ version = {1.2.1}
375
320
  }
376
321
  ```
377
322
 
378
323
  **Plain text citation**:
379
- > Cao, Kai. (2025). pyASDReader: A Python Library for ASD Spectral File Reading. https://github.com/KaiTastic/pyASDReader
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
- ## 📖 References
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">