Skip to content

Conversation

Copy link

Copilot AI commented Oct 21, 2025

This PR establishes the foundational Python package structure for JWST-Tools, enabling it to analyze JWST data products with all required dependencies.

Changes Made

Package Structure

Created a modern Python package using PEP 621 standards with the following structure:

  • jwst_tools/ - Main package directory
  • jwst_tools/__init__.py - Package initialization with dynamic version detection and dependency verification
  • pyproject.toml - Modern package configuration with metadata, dependencies, and dynamic versioning
  • MANIFEST.in - Distribution manifest for documentation files

Dependencies

The package declares all required dependencies for JWST data analysis:

  • astropy - Core astronomy library for calculations and data structures
  • matplotlib - Plotting and visualization tools
  • jwst - Official JWST pipeline tools and calibration
  • astroquery - Query astronomical databases and archives
  • specutils - Spectroscopic data analysis utilities

Package Metadata

  • Package name: jwst-tools
  • Version: Dynamic (automatically determined from git tags using setuptools-scm)
  • License: BSD-3-Clause (matching existing LICENSE file)
  • Authors: canavarrete01 and kelle
  • Python requirement: >=3.12
  • Appropriate classifiers for astronomy/science packages

Dynamic Versioning

The package uses setuptools-scm for automatic version management based on git tags. The version is dynamically determined at build time and can be accessed via jwst_tools.__version__ at runtime using importlib.metadata.

Installation

Users can now install the package using:

# Development mode
pip install -e .

# From GitHub
pip install git+https://github.com/BDNYC/JWST-Tools.git

All dependencies are declared in pyproject.toml and will be automatically installed during package installation.

Security

✅ All dependencies checked for known vulnerabilities - none found
✅ CodeQL security analysis passed with 0 alerts

This establishes the foundation for building tools to reduce and analyze JWST data products as described in the repository README.

Original prompt

Python package to analyze JWST data. Dependencies will be astropy, matplotlib, jwst, astroquery, specutils.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Add Python package for analyzing JWST data Add Python package structure with JWST data analysis dependencies Oct 21, 2025
Copilot AI requested a review from kelle October 21, 2025 20:27
Copilot finished work on behalf of kelle October 21, 2025 20:27
@kelle
Copy link
Member

kelle commented Oct 21, 2025

@copilot Remove the setup.py

@kelle
Copy link
Member

kelle commented Oct 21, 2025

@copilot Why do we need a requirements file when they are already listed in the pyproject.toml?

@kelle
Copy link
Member

kelle commented Oct 21, 2025

@copilot Make the minimum requirement Python 3.12

@kelle
Copy link
Member

kelle commented Oct 22, 2025

@copilot

  • make the minimum python requirement 3.12
  • remove the setup.py.
  • Why do we need a requirements file when they are already listed in the pyproject.toml?

Copy link
Author

Copilot AI commented Oct 22, 2025

@copilot Why do we need a requirements file when they are already listed in the pyproject.toml?

You're right - the requirements.txt was redundant since all dependencies are declared in pyproject.toml. Removed in commit b5d6645.

@copilot Remove the setup.py

Done. Removed in commit b5d6645.

Copilot finished work on behalf of kelle October 22, 2025 16:48
Copy link
Member

@kelle kelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change author list to include @canavarrete01 and @kelle rather than BDNYC.

@kelle
Copy link
Member

kelle commented Oct 22, 2025

@copilot change author list to include @canavarrete01 and @kelle rather than BDNYC.

Copy link
Author

Copilot AI commented Oct 22, 2025

@copilot change author list to include @canavarrete01 and @kelle rather than BDNYC.

Done. Updated authors list to include canavarrete01 and kelle in commit 8c855bd.

Copilot AI requested a review from kelle October 22, 2025 17:25
Copilot finished work on behalf of kelle October 22, 2025 17:25
Copy link
Member

@kelle kelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot

  • remove author from the init.py
  • set up dynamic versioning

Copy link
Author

Copilot AI commented Oct 22, 2025

@copilot

  • remove author from the init.py
  • set up dynamic versioning

Done in commit 5b47a22:

  • Removed __author__ from __init__.py and updated __all__
  • Set up dynamic versioning using setuptools-scm, which will automatically determine the version from git tags

Copilot AI requested a review from kelle October 22, 2025 17:36
Copilot finished work on behalf of kelle October 22, 2025 17:36
@kelle kelle requested a review from canavarrete01 October 22, 2025 17:42
Copy link
Member

@kelle kelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a great start to me! I'm curious what @canavarrete01 thinks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants