samplesheet-parser 0.3.2__tar.gz → 0.3.3__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.
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/.github/workflows/ci.yml +15 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/CHANGELOG.md +7 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/CITATION.cff +14 -4
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/PKG-INFO +4 -3
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/README.md +3 -2
- samplesheet_parser-0.3.3/images/samplesheet_parser_arch_v03.png +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/pyproject.toml +1 -1
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/.github/workflows/copilot-instructions.md +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/.gitignore +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/.zenodo.json +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/CONTRIBUTING.md +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/LICENSE +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/demo_merger.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/parse_examples.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/ProjectAlpha_SampleSheet.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/ProjectBeta_SampleSheet.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/ProjectDelta_SampleSheet_collision.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/ProjectGamma_SampleSheet.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/README.md +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/combined_clean.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/combined_collision_forced.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/combined_mixed_formats.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_dual_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_multi_lane.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_single_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_with_lab_qc_settings.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_with_manifests.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_nextseq_single_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_novaseq_x_dual_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_cloud_settings.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_index_umi.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_pipeline_settings.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_read_umi.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/images/samplesheet_parser_overview.png +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/__init__.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/cli.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/converter.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/diff.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/enums.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/factory.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/merger.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/parsers/__init__.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/parsers/v1.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/parsers/v2.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/validators.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/writer.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/scripts/demo_converter.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/scripts/demo_diff.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/scripts/demo_writer.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/__init__.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/conftest.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v1_dual_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v2_dual_index.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v2_modified.csv +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_cli.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_converter.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_diff.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_factory.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_merger.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_parsers/__init__.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_parsers/test_v1.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_parsers/test_v2.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_validators/__init__.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_validators/test_hamming.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_validators/test_validators.py +0 -0
- {samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_writer.py +0 -0
|
@@ -67,3 +67,18 @@ jobs:
|
|
|
67
67
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
68
68
|
with:
|
|
69
69
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
70
|
+
|
|
71
|
+
release:
|
|
72
|
+
needs: publish
|
|
73
|
+
runs-on: ubuntu-latest
|
|
74
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
75
|
+
permissions:
|
|
76
|
+
contents: write
|
|
77
|
+
|
|
78
|
+
steps:
|
|
79
|
+
- uses: actions/checkout@v4
|
|
80
|
+
|
|
81
|
+
- name: Create GitHub Release
|
|
82
|
+
uses: softprops/action-gh-release@v2
|
|
83
|
+
with:
|
|
84
|
+
generate_release_notes: true
|
|
@@ -6,6 +6,13 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [0.3.3] - 2026-03-13
|
|
10
|
+
|
|
11
|
+
### Documentation
|
|
12
|
+
- Add architecture diagram showing full library structure including CLI and SampleSheetMerger
|
|
13
|
+
- Update README with architecture overview, solid vs dashed line legend
|
|
14
|
+
- Add `[Custom_Sections*]` to V1 and V2 format descriptions
|
|
15
|
+
|
|
9
16
|
## [0.3.2] - 2026-03-12
|
|
10
17
|
|
|
11
18
|
### Added
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
cff-version: 1.2.0
|
|
2
|
-
message: "If you use this software, please cite it
|
|
2
|
+
message: "If you use this software, please cite it using the metadata below."
|
|
3
3
|
type: software
|
|
4
4
|
title: "samplesheet-parser"
|
|
5
|
+
abstract: >
|
|
6
|
+
A Python library for parsing, validating, converting, and merging
|
|
7
|
+
Illumina SampleSheet V1 and V2 files for BCLConvert and bcl2fastq.
|
|
8
|
+
Provides format auto-detection, bidirectional V1/V2 conversion,
|
|
9
|
+
structural and index validation, sheet diffing, and cross-project
|
|
10
|
+
merging with Hamming-distance collision detection.
|
|
5
11
|
version: 0.3.2
|
|
6
12
|
date-released: 2026-03-12
|
|
7
13
|
license: Apache-2.0
|
|
8
14
|
url: "https://github.com/chaitanyakasaraneni/samplesheet-parser"
|
|
9
15
|
repository-code: "https://github.com/chaitanyakasaraneni/samplesheet-parser"
|
|
10
|
-
|
|
11
|
-
A Python library for parsing, validating, converting, and merging
|
|
12
|
-
Illumina SampleSheet V1 and V2 files for BCLConvert and bcl2fastq.
|
|
16
|
+
repository-artifact: "https://pypi.org/project/samplesheet-parser/"
|
|
13
17
|
keywords:
|
|
14
18
|
- bioinformatics
|
|
15
19
|
- Illumina
|
|
16
20
|
- SampleSheet
|
|
17
21
|
- BCLConvert
|
|
22
|
+
- bcl2fastq
|
|
18
23
|
- demultiplexing
|
|
19
24
|
- genomics
|
|
25
|
+
- sequencing
|
|
20
26
|
- Python
|
|
27
|
+
identifiers:
|
|
28
|
+
- type: doi
|
|
29
|
+
value: 10.5281/zenodo.18989694
|
|
30
|
+
description: Concept DOI (all versions)
|
|
21
31
|
authors:
|
|
22
32
|
- family-names: Kasaraneni
|
|
23
33
|
given-names: Chaitanya Krishna
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: samplesheet-parser
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Format-agnostic parser for Illumina SampleSheet.csv files — supports IEM V1 and BCLConvert V2
|
|
5
5
|
Project-URL: Homepage, https://github.com/chaitanyakasaraneni/samplesheet-parser
|
|
6
6
|
Project-URL: Documentation, https://illumina-samplesheet.readthedocs.io
|
|
@@ -60,8 +60,9 @@ Supports both the classic IEM V1 format (bcl2fastq era) and the modern BCLConver
|
|
|
60
60
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
61
61
|
[](https://github.com/chaitanyakasaraneni/samplesheet-parser/actions)
|
|
62
62
|
[](https://codecov.io/gh/chaitanyakasaraneni/samplesheet-parser)
|
|
63
|
+
[](https://doi.org/10.5281/zenodo.18989694)
|
|
63
64
|
|
|
64
|
-

|
|
65
66
|
|
|
66
67
|
*`SampleSheetFactory` auto-detects the format and routes to the correct parser. Both formats share a common interface — `SampleSheetConverter` handles bidirectional conversion, `SampleSheetValidator` catches index and adapter issues, `SampleSheetDiff` compares two sheets across any combination of V1/V2 formats, `SampleSheetMerger` combines multiple per-project sheets into one, and `SampleSheetWriter` builds or edits sheets programmatically. The `samplesheet` CLI exposes all of this from the shell.*
|
|
67
68
|
|
|
@@ -584,7 +585,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for the full local testing guide and PR c
|
|
|
584
585
|
title = {samplesheet-parser: Format-agnostic parser for Illumina SampleSheet.csv},
|
|
585
586
|
year = {2026},
|
|
586
587
|
url = {https://github.com/chaitanyakasaraneni/samplesheet-parser},
|
|
587
|
-
version = {0.3.
|
|
588
|
+
version = {0.3.3}
|
|
588
589
|
}
|
|
589
590
|
```
|
|
590
591
|
|
|
@@ -9,8 +9,9 @@ Supports both the classic IEM V1 format (bcl2fastq era) and the modern BCLConver
|
|
|
9
9
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
10
10
|
[](https://github.com/chaitanyakasaraneni/samplesheet-parser/actions)
|
|
11
11
|
[](https://codecov.io/gh/chaitanyakasaraneni/samplesheet-parser)
|
|
12
|
+
[](https://doi.org/10.5281/zenodo.18989694)
|
|
12
13
|
|
|
13
|
-

|
|
14
15
|
|
|
15
16
|
*`SampleSheetFactory` auto-detects the format and routes to the correct parser. Both formats share a common interface — `SampleSheetConverter` handles bidirectional conversion, `SampleSheetValidator` catches index and adapter issues, `SampleSheetDiff` compares two sheets across any combination of V1/V2 formats, `SampleSheetMerger` combines multiple per-project sheets into one, and `SampleSheetWriter` builds or edits sheets programmatically. The `samplesheet` CLI exposes all of this from the shell.*
|
|
16
17
|
|
|
@@ -533,7 +534,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for the full local testing guide and PR c
|
|
|
533
534
|
title = {samplesheet-parser: Format-agnostic parser for Illumina SampleSheet.csv},
|
|
534
535
|
year = {2026},
|
|
535
536
|
url = {https://github.com/chaitanyakasaraneni/samplesheet-parser},
|
|
536
|
-
version = {0.3.
|
|
537
|
+
version = {0.3.3}
|
|
537
538
|
}
|
|
538
539
|
```
|
|
539
540
|
|
|
Binary file
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "samplesheet-parser"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "Format-agnostic parser for Illumina SampleSheet.csv files — supports IEM V1 and BCLConvert V2"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/.github/workflows/copilot-instructions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/combined_clean.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_dual_index.csv
RENAMED
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_multi_lane.csv
RENAMED
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_single_index.csv
RENAMED
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v1_with_manifests.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_index_umi.csv
RENAMED
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/examples/sample_sheets/v2_with_read_umi.csv
RENAMED
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/images/samplesheet_parser_overview.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/samplesheet_parser/parsers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v1_dual_index.csv
RENAMED
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v2_dual_index.csv
RENAMED
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/fixtures/SampleSheet_v2_modified.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samplesheet_parser-0.3.2 → samplesheet_parser-0.3.3}/tests/test_validators/test_validators.py
RENAMED
|
File without changes
|
|
File without changes
|