Releases: mikeqfu/pyrcs
Release list
1.1.0
📦 Release v1.1.0
This release introduces ecosystem updates, including Pandas 3.0 and PyHelpers 2.4 compatibility, and improves the robustness of data parsing across core modules.
Summary of changes since 1.0.4:
🐛 Bug fixes
- Replaced checks with
pd.isna()in ELR parsing to preventTypeErroron null nodes, and refined character count heuristics (#78, #81). - Implemented URL normalisation and request timeouts to prevent hangs during last-updated-date retrieval (#77, #80).
- Corrected broken case-sensitive hyperlinks in
README.mdand fixed PDF chapter numbering.
⚙️ Maintenance & refactoring
- Updated type selection to include
'string'extension types and removed deprecated silent downcasting contexts (#79, #82). - Migrated to
importlib.resourcesfor metadata management and adoptedresolve_dir()for path handling (#83). - Optimised
_stanox_note()to correctly isolate pseudo STANOX markers and handle malformed parentheses.
🧪 Test enhancements
- Migrated test suite mocking from
unittest.mocktopytest-mocker. - Added parameterised testing for location identifiers and increased coverage for edge-case STANOX parsing.
🛠️ CI/CD
- Updated
requirements.txtto ensurepytest-mockis available in GitHub Actions.
1.0.4
📦 Release v1.0.4
This release focuses on stabilising the codebase through expanded test coverage, logic refinements, and fixes for breaking changes in upstream data scraping.
Summary of changes since 1.0.3:
🐛 Bug fixes
- Web scraper fix: Resolved a
TypeErrorinDepots.fetch_codes()by updating header mappings to match current upstream structures (#67). - Parsing logic: Fixed a minor bug in
Tunnels._parse_lengthand improved connection error reporting. - Infrastructure: Standardised error-raising logic and refined file path generation in the base class.
🧪 Test enhancements
- Coverage expansion: Increased unit test coverage for core modules, including
Stations,Tunnels,Viaducts,ELRMileages,Features, andSigBoxes. - Robustness: Refactored
TestLORand prefix validation to use dynamic type checking instead of hardcoded values (#66).
⚙️ Maintenance
- API cleanup: Converted
defaultdictoutputs to standarddictfor cleaner API returns. - Refactoring: Improved data update workflows for
OtherAssetsandELRMileages. - Documentation: Updated project metadata, Sphinx configuration, and
quick-start.rst. - Dependencies: Updated
requirements.txtfor both core and documentation environments.
1.0.3
📦 Release v1.0.3
This release introduces several bug fixes and completes the Python 3.12 compatibility update.
Summary of changes since 1.0.2:
🐛 Bug fixes
- Fixed
KeyError: 'Station'inStations.collect_locations()(#52). - Fixed
ConnectionErrorhandling inget_introduction()(#54). - Resolved
TypeErrorin both GWR data processing (#56) and viaduct data parsing (#58). - Restored complete data collection in
get_site_map()(#61).
⚙️ Maintenance
- Updated
requirements.txt. - Bumped minimum Python version: The required minimum Python version for the package is now 3.12.
1.0.2
📦 Release v1.0.2
This release includes bug fixes, error-handling improvements, and packaging & documentation updates in preparation for future development.
Summary of changes since 1.0.1:
🐛 Bug fixes:
- Fixed note aggregation logic in
LocationIdentifiers.collect_notes()to handle behaviour more accurately (#45). - Handled
IndexErroringet_introduction()for malformed or invalid URLs (#47).
🔧 Packaging & documentation (#48):
- Removed
setup.cfg, and updatedpyproject.tomlandMANIFEST.in. - Improved Sphinx documentation template.
1.0.1
1.0.0
Notable changes since 0.3.7:
- Major Release: Version 1.0.0 introduces significant improvements to both code and documentation.
- Code enhancements: Optimised performance and refactored core modules for better readability and maintainability.
- Bug fixes: Resolved various issues identified through practical use.
- License Update: This release is now licensed under the MIT License, providing greater flexibility and usability.
For more information and detailed specifications, check out the PyRCS 1.0.0 documentation.
0.3.7
Notable changes since 0.3.6:
- Enhanced the functions get_site_map() and parse_tr() in the parser module.
- Fixed potential bugs and made improvements to various classes.
For more information and detailed specifications, check out PyRCS 0.3.7 documentation.
0.3.6
Notable changes since 0.3.5:
- Improved the following functions and classes with bug fixes:
- parse_tr() in the module parser;
- format_err_msg() in the module utils;
- Stations in the module other_assets.station;
- LocationIdentifiers in the module line_data.loc_id.
For more information and detailed specifications, check out PyRCS 0.3.6 documentation.
0.3.5
Notable changes since 0.3.4:
- Improved the following function and methods with bug fixes:
For more information and detailed specifications, check out PyRCS 0.3.5 documentation.