feat: add observing list UI for SkySafari .skylist files#394
Draft
mrosseel wants to merge 7 commits intobrickbots:mainfrom
Draft
feat: add observing list UI for SkySafari .skylist files#394mrosseel wants to merge 7 commits intobrickbots:mainfrom
mrosseel wants to merge 7 commits intobrickbots:mainfrom
Conversation
Adds Objects > Obs Lists menu that lists available .skylist files from ~/PiFinder_data/obslists/, loads the selected list into the observing list state (enabling chart markers), and displays objects in a list view. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Parse EndObjectRA/EndObjectDec fields to create navigable targets for objects not in the PiFinder catalog (e.g. asterism stars with TYC IDs). Also parse Comment field as object description, fix split/strip bugs, and guard get_lists() against missing directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add obslist_formats.py with read/write support for 8 observing list
formats: SkySafari, CSV, Plain Text, Stellarium, Autostar Tour (.mtf),
Argo Navis, NexTour (.hct), and EQMOD Tour (.lst).
- Common ObsListEntry/ObsList data model for format interchange
- Auto-detection by extension and content sniffing
- NexTour supports both CSOG coord-first and web-export variants
- Catalog name aliases (Messier->M, Caldwell->C, Collinder->Cr)
- Duplicate filename disambiguation in UI (e.g. "CSOG [skylist]")
- Tour marker filtering ("End of tour" entries skipped)
- 18 unit tests covering roundtrips and format detection
Refactor obslist.py to use the format library for parsing, keeping
catalog resolution separate. UI updated for multi-extension support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- catalogs: remove false-negative else blocks in CatalogFilter that rejected objects with empty constellation or object type - nearby: guard against empty deduplicated object list in BallTree - obslist: add constellation lookup for coordinate-based objects - solver: disable shared memory for Cedar detect (shmem broken) - object_details: fix catalog initialized check for non-standard codes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Observing list objects (especially coordinate-based ones) were all rejected by the catalog filter when sorting by nearest, because they lack obj_type/const fields. Custom object lists should not be filtered by the global catalog filter since the user explicitly selected them. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of special-casing observing lists to skip the catalog filter, give coordinate-based objects the '?' (Unknown) type. This integrates them properly with the existing filter system — users can filter on magnitude, type, etc. just like catalog objects. The '?' type is already in both OBJ_TYPES and the filter menu. Also passes through obj_type from parsed entries when available (e.g. SkySafari/Argo formats that include object type). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
obslist_formats.pylibrary: reads and writes 8 observing list formats (SkySafari, CSV, Plain Text, Stellarium, Autostar Tour, Argo Navis, NexTour, EQMOD Tour)ObsListEntry/ObsListdata model as interchange format between all readers/writersobslist.pyto use the format library, with catalog resolution kept separate[ext]disambiguation when duplicate filenames existDetails
RA#Dec#Name) and web-export (category#num#name#type#mag##raH#raM#sign#decD#decM) variants.mtfextension support addedTest plan
pytest tests/test_obslist_formats.py— 18 tests passing🤖 Generated with Claude Code