Skip to content

Pyarrow update - #57

Closed
nick-youngblut wants to merge 7 commits into
openvax:masterfrom
nick-youngblut:pyarrow_update
Closed

Pyarrow update#57
nick-youngblut wants to merge 7 commits into
openvax:masterfrom
nick-youngblut:pyarrow_update

Conversation

@nick-youngblut

Copy link
Copy Markdown

This pull request introduces several improvements to the gtfparse library, including the addition of type annotations for better code clarity, enhancements to the build system, and updates to function documentation. It also simplifies dependency management and modernizes the project structure. Below are the most important changes grouped by theme.

Code Enhancements and Type Annotations:

  • Added type annotations to multiple functions, such as expand_attribute_strings in gtfparse/attribute_parsing.py, create_missing_features in gtfparse/create_missing_features.py, and various parsing functions in gtfparse/read_gtf.py, improving code readability and type safety. [1] [2] [3] [4] [5]

Build System and Dependency Management:

  • Replaced the requirements.txt file with a pyproject.toml configuration, aligning with modern Python packaging standards. Dependencies, including development dependencies, are now specified in the [project] and [project.optional-dependencies] sections.
  • Updated the installation process in .github/workflows/tests.yml to use pip install ".[dev]" for installing development dependencies.

Documentation and Functionality Improvements:

  • Added detailed docstrings to functions like parse_with_polars_lazy and parse_gtf_and_expand_attributes in gtfparse/read_gtf.py, explaining parameters, return types, and usage examples for better developer understanding. [1] [2]

…pyarrow-version

Bump pyarrow version and add build backend
- Added .cursor/ to .gitignore.
- Updated pyproject.toml to include build-system, version, optional dependencies, and refined classifiers.
- Removed requirements.txt and adjusted GitHub Actions workflow to install development dependencies directly from pyproject.toml.
@iskandr

iskandr commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Thanks @nick-youngblut! A lot of this has since landed on master independently: pyarrow is already pinned >=18.0.0, requires-python is now >=3.9, and the pyproject.toml build-system / dependency layout has been modernized.

The remaining unique value here is the type annotations and expanded docstrings. Unfortunately master has since diverged substantially — GENCODE attribute_aliases support, an expand_attribute_column fix, and (just now, in #71) removal of the import-time logging.basicConfig() call. The annotations here no longer match the current signatures, and rebasing would re-introduce the basicConfig() anti-pattern we just removed. So I'm closing this as superseded.

A focused type-annotations PR against current master would be very welcome if you're up for it — thanks again for pushing on this.

@iskandr iskandr closed this Jul 8, 2026
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