From dda2129c40b1d7765cf664fac1a2d70521ff294c Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:04:16 -0400 Subject: [PATCH 01/19] Add dummy comment to pytest workflow reference --- .github/workflows/python_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 9db19bde..b31d16f1 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -31,7 +31,7 @@ jobs: python-version: '3.10' call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main #dummy with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' From 63de13d329925ce5361318a618604f38d721537c Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:17:20 -0400 Subject: [PATCH 02/19] Update Poetry version and modify project metadata - Updated Poetry version from 1.8.0 to 2.1.3 in .pre-commit-config.yaml. - Regenerated poetry.lock file to reflect the new Poetry version. - Refactored pyproject.toml to align with the latest project metadata format: - Changed author and maintainer entries to use dictionary format. - Added dynamic dependencies section. - Adjusted script definitions to match new project structure. --- .pre-commit-config.yaml | 2 +- poetry.lock | 73 +++++++++++++++++++++++++++++++++++------ pyproject.toml | 24 +++++++++----- 3 files changed, 80 insertions(+), 19 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2f853b86..f07f0947 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ ci: repos: - repo: https://github.com/python-poetry/poetry - rev: 1.8.0 + rev: 2.1.3 hooks: - id: poetry-check args: [--lock] diff --git a/poetry.lock b/poetry.lock index 493e5ebe..708a2e95 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -6,6 +6,7 @@ version = "0.7.16" description = "A light, configurable Sphinx theme" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, @@ -17,6 +18,7 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -28,6 +30,7 @@ version = "3.3.11" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.9.0" +groups = ["dev"] files = [ {file = "astroid-3.3.11-py3-none-any.whl", hash = "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec"}, {file = "astroid-3.3.11.tar.gz", hash = "sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce"}, @@ -42,13 +45,14 @@ version = "2.17.0" description = "Internationalization utilities" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"}, {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"}, ] [package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] [[package]] name = "certifi" @@ -56,6 +60,7 @@ version = "2025.7.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, @@ -67,6 +72,7 @@ version = "3.4.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, @@ -168,6 +174,8 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -179,6 +187,7 @@ version = "7.9.2" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912"}, {file = "coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f"}, @@ -253,7 +262,7 @@ files = [ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "dill" @@ -261,6 +270,7 @@ version = "0.4.0" description = "serialize all of Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049"}, {file = "dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0"}, @@ -276,6 +286,7 @@ version = "0.19" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc"}, {file = "docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"}, @@ -287,6 +298,8 @@ version = "1.3.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, @@ -304,6 +317,7 @@ version = "0.12.0a1" description = "Python API for geoh5, an open file format for geoscientific data" optional = false python-versions = "^3.10" +groups = ["main"] files = [] develop = false @@ -325,6 +339,7 @@ version = "3.14.0" description = "Read and write HDF5 files from Python" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "h5py-3.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24df6b2622f426857bda88683b16630014588a0e4155cba44e872eb011c4eaed"}, {file = "h5py-3.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ff2389961ee5872de697054dd5a033b04284afc3fb52dc51d94561ece2c10c6"}, @@ -363,6 +378,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -377,6 +393,7 @@ version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev"] files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, @@ -388,6 +405,7 @@ version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, @@ -399,6 +417,7 @@ version = "6.0.1" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.9.0" +groups = ["dev"] files = [ {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, @@ -414,6 +433,7 @@ version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, @@ -431,6 +451,7 @@ version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -501,6 +522,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -512,6 +534,7 @@ version = "1.26.4" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, @@ -557,6 +580,7 @@ version = "25.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, @@ -568,6 +592,7 @@ version = "10.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, @@ -645,7 +670,7 @@ docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] -typing = ["typing-extensions"] +typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] [[package]] @@ -654,6 +679,7 @@ version = "4.3.8" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, @@ -670,6 +696,7 @@ version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, @@ -685,6 +712,7 @@ version = "0.6.1" description = "properties: an organizational aid and wrapper for validation and tab completion of class properties" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "properties-0.6.1.tar.gz", hash = "sha256:b119ce4c53f4717fa29371c1bb929f422dda7ed90a4559b3583ea77389177263"}, ] @@ -703,6 +731,7 @@ version = "2.11.7" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, @@ -716,7 +745,7 @@ typing-inspection = ">=0.4.0" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-core" @@ -724,6 +753,7 @@ version = "2.33.2" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, @@ -835,6 +865,7 @@ version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, @@ -849,6 +880,7 @@ version = "3.3.7" description = "python code static checker" optional = false python-versions = ">=3.9.0" +groups = ["dev"] files = [ {file = "pylint-3.3.7-py3-none-any.whl", hash = "sha256:43860aafefce92fca4cf6b61fe199cdc5ae54ea28f9bf4cd49de267b5195803d"}, {file = "pylint-3.3.7.tar.gz", hash = "sha256:2b11de8bde49f9c5059452e0c310c079c746a0a8eeaa789e5aa966ecc23e4559"}, @@ -860,7 +892,7 @@ colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = [ {version = ">=0.2", markers = "python_version < \"3.11\""}, {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, + {version = ">=0.3.6", markers = "python_version == \"3.11\""}, ] isort = ">=4.2.5,<5.13 || >5.13,<7" mccabe = ">=0.6,<0.8" @@ -878,6 +910,7 @@ version = "0.20220715.0" description = "Pure Python library for saving and loading PNG images" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "pypng-0.20220715.0-py3-none-any.whl", hash = "sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c"}, {file = "pypng-0.20220715.0.tar.gz", hash = "sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1"}, @@ -889,6 +922,7 @@ version = "8.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, @@ -912,6 +946,7 @@ version = "6.2.1" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, @@ -931,6 +966,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -993,6 +1029,7 @@ version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, @@ -1014,6 +1051,7 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -1025,6 +1063,7 @@ version = "3.0.1" description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +groups = ["dev"] files = [ {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, @@ -1036,6 +1075,7 @@ version = "5.3.0" description = "Python documentation generator" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5"}, {file = "sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d"}, @@ -1062,7 +1102,7 @@ sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] -test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] +test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast ; python_version < \"3.8\""] [[package]] name = "sphinxcontrib-applehelp" @@ -1070,6 +1110,7 @@ version = "2.0.0" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, @@ -1086,6 +1127,7 @@ version = "2.0.0" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, @@ -1102,6 +1144,7 @@ version = "2.1.0" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, @@ -1118,6 +1161,7 @@ version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, @@ -1132,6 +1176,7 @@ version = "2.0.0" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, @@ -1148,6 +1193,7 @@ version = "2.0.0" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, @@ -1164,6 +1210,7 @@ version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -1205,6 +1252,7 @@ version = "0.13.3" description = "Style preserving TOML library" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0"}, {file = "tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1"}, @@ -1216,10 +1264,12 @@ version = "4.14.1" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] +markers = {dev = "python_version == \"3.10\""} [[package]] name = "typing-inspection" @@ -1227,6 +1277,7 @@ version = "0.4.1" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, @@ -1241,13 +1292,14 @@ version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -1258,6 +1310,7 @@ version = "0.2.2" description = "vectormath: vector math utilities for Python" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "vectormath-0.2.2.tar.gz", hash = "sha256:f9f9209d350ec89dc11e2548e0e6397c1b9489c8468eb50ce33788ee4322a7b8"}, ] @@ -1266,6 +1319,6 @@ files = [ numpy = ">=1.7" [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = "^3.10" -content-hash = "51b1b5d74a9096d0305d6f60b97be9ed3989d7f2f827d8fae2ed9143e466850e" +content-hash = "f176e0e83ab7db258ac131a5a269e2085664176dc5af36c63354e0cb58571221" diff --git a/pyproject.toml b/pyproject.toml index 7afe233f..2834f235 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,27 @@ -[tool.poetry] +[build-system] +requires = ["poetry-core>=1.0.0", "setuptools"] +build-backend = "poetry.core.masonry.api" + + +[project] name = "mira-omf" version = "3.4.0-alpha.1" description = "API Library for Open Mining Format" license = "MIT" authors = [ - "Mira Geoscience ", - "Global Mining Guidelines Group ", + { name = "Mira Geoscience", email = "support@mirageoscience.com" }, + { name = "Global Mining Guidelines Group", email = "info@gmggroup.org" } ] -maintainers = ["Dominique Fournier "] +maintainers = [{ name = "Dominique Fournier", email = "dominiquef@mirageoscience.com" }] repository = "https://github.com/MiraGeoscience/omf" #documentation = "https://mirageoscience-omf.readthedocs-hosted.com/" homepage = "https://www.mirageoscience.com/mining-industry-software/python-integration/" +dynamic = ["dependencies"] + +requires-python = ">=3.10,<4.0" + + readme = "README.rst" keywords = ["geology", "geophysics", "earth sciences"] classifiers = [ @@ -40,7 +50,7 @@ include = [ { path = "docs/**/THIRD_PARTY_SOFTWARE.rst" }, ] -[tool.poetry.scripts] +[project.scripts] geoh5_to_omf = 'omf.scripts.geoh5_to_omf:main' omf_to_geoh5 = 'omf.scripts.omf_to_geoh5:main' @@ -154,6 +164,4 @@ fail_under = 80 skip_empty = true skip_covered = true -[build-system] -requires = ["poetry-core>=1.0.0", "setuptools"] -build-backend = "poetry.core.masonry.api" + From dfc4b8d0bd4d625411f3b450f7a7757b18297ed9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 03:17:44 +0000 Subject: [PATCH 03/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2834f235..79f7acd8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -163,5 +163,3 @@ fail_under = 80 [tool.coverage.html] skip_empty = true skip_covered = true - - From 23a1d82c85f9a9248ba99ea1dcedf52cc2076be5 Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:22:32 -0400 Subject: [PATCH 04/19] Fix version retrieval in get_pyproject_version function --- tests/version_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/version_test.py b/tests/version_test.py index abd7317b..224b20f6 100644 --- a/tests/version_test.py +++ b/tests/version_test.py @@ -29,7 +29,7 @@ def get_pyproject_version(): with open(str(path), encoding="utf-8") as file: pyproject = toml.loads(file.read()) - return pyproject["tool"]["poetry"]["version"] + return pyproject["project"]["version"] def get_conda_recipe_version(): From 38875c1bcc11344344e8d84e960e8adc11c17f37 Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:31:25 -0400 Subject: [PATCH 05/19] Update Python version constraints and refactor dependencies in pyproject.toml --- poetry.lock | 4 ++-- pyproject.toml | 27 +++++++++------------------ 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/poetry.lock b/poetry.lock index 708a2e95..8c9062b9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1320,5 +1320,5 @@ numpy = ">=1.7" [metadata] lock-version = "2.1" -python-versions = "^3.10" -content-hash = "f176e0e83ab7db258ac131a5a269e2085664176dc5af36c63354e0cb58571221" +python-versions = ">=3.10,<4.0" +content-hash = "0f4ff9d1de3bf81c4dc5756d2437c45b57d423734d9805e540c32f706100c556" diff --git a/pyproject.toml b/pyproject.toml index 79f7acd8..9e8ddcab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,24 +50,15 @@ include = [ { path = "docs/**/THIRD_PARTY_SOFTWARE.rst" }, ] -[project.scripts] -geoh5_to_omf = 'omf.scripts.geoh5_to_omf:main' -omf_to_geoh5 = 'omf.scripts.omf_to_geoh5:main' - -[tool.poetry.dependencies] -python = "^3.10" - -numpy = "~1.26.0" # also in geoh5py -properties = "0.6.*" -pypng = "^0.20220715" -six = "^1.16" -vectormath = "0.2.*" - -## dependencies from Git repositories -#------------------------------------ -#geoh5py = {version = ">=0.12.0a1, <0.13.dev", allow-prereleases = true} -geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop"} -#geoh5py = {path = "../geoh5py", develop = true} + +dependencies = [ + "numpy ~= 1.26.0", + "properties == 0.6.*", + "pypng >= 0.20220715", + "six >= 1.16", + "vectormath == 0.2.*", + "geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@develop" +] [tool.poetry.group.dev.dependencies] Pygments = "*" From 08953b2b66b4a96f00036bdc3e7036a8dd02ea77 Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:39:42 -0400 Subject: [PATCH 06/19] Update workflow to use DEVOPS-690-poetry2 branch for static analysis and pytest --- .github/workflows/python_analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index b31d16f1..49da67bc 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -24,14 +24,14 @@ concurrency: jobs: call-workflow-static-analysis: name: Static analysis - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@DEVOPS-690-poetry2 with: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main #dummy + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@DEVOPS-690-poetry2 with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' From 902675dbfa350451a8c54c6beb1371bcf2d55793 Mon Sep 17 00:00:00 2001 From: saicheran Date: Thu, 17 Jul 2025 23:41:14 -0400 Subject: [PATCH 07/19] Update workflow to use main branch for static analysis and pytest --- .github/workflows/python_analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 49da67bc..514ba3b0 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -24,14 +24,14 @@ concurrency: jobs: call-workflow-static-analysis: name: Static analysis - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@DEVOPS-690-poetry2 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main with: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@DEVOPS-690-poetry2 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' From 1a6adc8afe065aae39a0b314e7890382a5cf272a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 03:43:06 +0000 Subject: [PATCH 08/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .github/workflows/python_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 514ba3b0..9db19bde 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -31,7 +31,7 @@ jobs: python-version: '3.10' call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' From 2c57c50d671fd8fae66d224d0ba69022f41260b1 Mon Sep 17 00:00:00 2001 From: saicheran Date: Fri, 18 Jul 2025 00:30:47 -0400 Subject: [PATCH 09/19] Refactor dependencies in pyproject.toml and update optional dependencies in poetry.lock for geoh5py support --- poetry.lock | 28 +++++++++++++++++++--------- pyproject.toml | 32 +++++++++++++++++--------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8c9062b9..c96747be 100644 --- a/poetry.lock +++ b/poetry.lock @@ -16,9 +16,10 @@ files = [ name = "annotated-types" version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" -optional = false +optional = true python-versions = ">=3.8" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -315,9 +316,10 @@ test = ["pytest (>=6)"] name = "geoh5py" version = "0.12.0a1" description = "Python API for geoh5, an open file format for geoscientific data" -optional = false +optional = true python-versions = "^3.10" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [] develop = false @@ -337,9 +339,10 @@ resolved_reference = "a29cd93edd90cc7ad20c227104c58150a69c6c34" name = "h5py" version = "3.14.0" description = "Read and write HDF5 files from Python" -optional = false +optional = true python-versions = ">=3.9" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "h5py-3.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24df6b2622f426857bda88683b16630014588a0e4155cba44e872eb011c4eaed"}, {file = "h5py-3.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ff2389961ee5872de697054dd5a033b04284afc3fb52dc51d94561ece2c10c6"}, @@ -590,9 +593,10 @@ files = [ name = "pillow" version = "10.3.0" description = "Python Imaging Library (Fork)" -optional = false +optional = true python-versions = ">=3.8" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, @@ -729,9 +733,10 @@ math = ["numpy (>=1.7)", "vectormath (>=0.1.4)"] name = "pydantic" version = "2.11.7" description = "Data validation using Python type hints" -optional = false +optional = true python-versions = ">=3.9" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, @@ -751,9 +756,10 @@ timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows name = "pydantic-core" version = "2.33.2" description = "Core functionality for Pydantic validation and serialization" -optional = false +optional = true python-versions = ">=3.9" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, @@ -1269,15 +1275,16 @@ files = [ {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] -markers = {dev = "python_version == \"3.10\""} +markers = {main = "extra == \"geoh5py\"", dev = "python_version == \"3.10\""} [[package]] name = "typing-inspection" version = "0.4.1" description = "Runtime typing introspection tools" -optional = false +optional = true python-versions = ">=3.9" groups = ["main"] +markers = "extra == \"geoh5py\"" files = [ {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, @@ -1318,7 +1325,10 @@ files = [ [package.dependencies] numpy = ">=1.7" +[extras] +geoh5py = ["geoh5py"] + [metadata] lock-version = "2.1" python-versions = ">=3.10,<4.0" -content-hash = "0f4ff9d1de3bf81c4dc5756d2437c45b57d423734d9805e540c32f706100c556" +content-hash = "856166e4b9dcdb36477daa7d13d6485e532ad59f4f795e3f5e34b0438f93b811" diff --git a/pyproject.toml b/pyproject.toml index 9e8ddcab..de346d2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,6 @@ requires = ["poetry-core>=1.0.0", "setuptools"] build-backend = "poetry.core.masonry.api" - [project] name = "mira-omf" version = "3.4.0-alpha.1" @@ -14,16 +13,15 @@ authors = [ ] maintainers = [{ name = "Dominique Fournier", email = "dominiquef@mirageoscience.com" }] repository = "https://github.com/MiraGeoscience/omf" -#documentation = "https://mirageoscience-omf.readthedocs-hosted.com/" homepage = "https://www.mirageoscience.com/mining-industry-software/python-integration/" - -dynamic = ["dependencies"] +#documentation = "https://mirageoscience-omf.readthedocs-hosted.com/" requires-python = ">=3.10,<4.0" - readme = "README.rst" + keywords = ["geology", "geophysics", "earth sciences"] + classifiers = [ 'Development Status :: 4 - Beta', 'Programming Language :: Python', @@ -37,6 +35,20 @@ classifiers = [ 'Natural Language :: English', ] +dependencies = [ + "numpy ~=1.26.0", + "properties ==0.6.*", + "pypng >=0.20220715", + "six >=1.16", + "vectormath ==0.2.*" +] + +[project.optional-dependencies] +geoh5py = [ + "geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@develop" +] + +[tool.poetry] packages = [ { include = "omf" }, ] @@ -50,16 +62,6 @@ include = [ { path = "docs/**/THIRD_PARTY_SOFTWARE.rst" }, ] - -dependencies = [ - "numpy ~= 1.26.0", - "properties == 0.6.*", - "pypng >= 0.20220715", - "six >= 1.16", - "vectormath == 0.2.*", - "geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@develop" -] - [tool.poetry.group.dev.dependencies] Pygments = "*" pylint = "*" From 953325f1c28d3bc12b1a2ac1ea53d83dca18e8c5 Mon Sep 17 00:00:00 2001 From: saicheran Date: Fri, 18 Jul 2025 00:34:44 -0400 Subject: [PATCH 10/19] Fix working directory configuration in Python analysis workflow --- .github/workflows/python_analysis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 9db19bde..f1012fdd 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -1,4 +1,4 @@ -name: Python analysis +name: Python analysis on: pull_request: @@ -29,6 +29,8 @@ jobs: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' + working-directory: 'omf' + call-workflow-pytest: name: Pytest uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main @@ -39,5 +41,6 @@ jobs: cache-number: 1 codecov-reference-python-version: '3.10' codecov-reference-os: '["windows-latest"]' + working-directory: 'omf' secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From 1b718fb66557064ca74a663a2e097a58424a7c64 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 04:36:21 +0000 Subject: [PATCH 11/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .github/workflows/python_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index f1012fdd..435e8617 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -1,4 +1,4 @@ -name: Python analysis +name: Python analysis on: pull_request: From a183f1418680ad0d437d3bcbc9f494129d4250fd Mon Sep 17 00:00:00 2001 From: saicheran Date: Fri, 18 Jul 2025 00:40:53 -0400 Subject: [PATCH 12/19] Remove working directory specification from Python analysis workflow --- .github/workflows/python_analysis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 435e8617..3b47ef31 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -29,7 +29,6 @@ jobs: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' - working-directory: 'omf' call-workflow-pytest: name: Pytest @@ -41,6 +40,5 @@ jobs: cache-number: 1 codecov-reference-python-version: '3.10' codecov-reference-os: '["windows-latest"]' - working-directory: 'omf' secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From e7ec98818a36c40f18ab6216e63585f960f71d3f Mon Sep 17 00:00:00 2001 From: saicheran Date: Fri, 18 Jul 2025 00:43:27 -0400 Subject: [PATCH 13/19] Refactor package configuration in pyproject.toml to use setuptools for package finding --- pyproject.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index de346d2f..002cba8b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,10 +48,8 @@ geoh5py = [ "geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@develop" ] -[tool.poetry] -packages = [ - { include = "omf" }, -] +[tool.setuptools.packages.find] +where = ["omf"] include = [ { path = "COPYING" }, From bed7ff9e22bcf1e88baa7ee52a514ff124995718 Mon Sep 17 00:00:00 2001 From: saicheran Date: Fri, 18 Jul 2025 10:22:49 -0400 Subject: [PATCH 14/19] Update workflow references to use DEVOPS-690-poetry2 branch for static analysis and pytest jobs --- .github/workflows/python_analysis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 3b47ef31..49da67bc 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -24,15 +24,14 @@ concurrency: jobs: call-workflow-static-analysis: name: Static analysis - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@DEVOPS-690-poetry2 with: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' - call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@DEVOPS-690-poetry2 with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' From 7e8bee9a5eabda14a5e52f0ab308edf2036f0bc5 Mon Sep 17 00:00:00 2001 From: saicheranb Date: Sun, 17 Aug 2025 17:53:30 -0400 Subject: [PATCH 15/19] Update workflow references to use main branch for static analysis and pytest jobs; adjust optional dependencies in poetry.lock and pyproject.toml --- .github/workflows/python_analysis.yml | 4 +-- poetry.lock | 28 +++++---------- pyproject.toml | 51 ++++++++++++++++----------- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/.github/workflows/python_analysis.yml b/.github/workflows/python_analysis.yml index 49da67bc..9db19bde 100644 --- a/.github/workflows/python_analysis.yml +++ b/.github/workflows/python_analysis.yml @@ -24,14 +24,14 @@ concurrency: jobs: call-workflow-static-analysis: name: Static analysis - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@DEVOPS-690-poetry2 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-static_analysis.yml@main with: package-manager: 'poetry' app-name: 'omf' python-version: '3.10' call-workflow-pytest: name: Pytest - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@DEVOPS-690-poetry2 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-pytest.yml@main with: package-manager: 'poetry' python-versions: '["3.10", "3.11", "3.12"]' diff --git a/poetry.lock b/poetry.lock index c96747be..33fa79d7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -16,10 +16,9 @@ files = [ name = "annotated-types" version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" -optional = true +optional = false python-versions = ">=3.8" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -316,10 +315,9 @@ test = ["pytest (>=6)"] name = "geoh5py" version = "0.12.0a1" description = "Python API for geoh5, an open file format for geoscientific data" -optional = true +optional = false python-versions = "^3.10" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [] develop = false @@ -339,10 +337,9 @@ resolved_reference = "a29cd93edd90cc7ad20c227104c58150a69c6c34" name = "h5py" version = "3.14.0" description = "Read and write HDF5 files from Python" -optional = true +optional = false python-versions = ">=3.9" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "h5py-3.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24df6b2622f426857bda88683b16630014588a0e4155cba44e872eb011c4eaed"}, {file = "h5py-3.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ff2389961ee5872de697054dd5a033b04284afc3fb52dc51d94561ece2c10c6"}, @@ -593,10 +590,9 @@ files = [ name = "pillow" version = "10.3.0" description = "Python Imaging Library (Fork)" -optional = true +optional = false python-versions = ">=3.8" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, @@ -733,10 +729,9 @@ math = ["numpy (>=1.7)", "vectormath (>=0.1.4)"] name = "pydantic" version = "2.11.7" description = "Data validation using Python type hints" -optional = true +optional = false python-versions = ">=3.9" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, @@ -756,10 +751,9 @@ timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows name = "pydantic-core" version = "2.33.2" description = "Core functionality for Pydantic validation and serialization" -optional = true +optional = false python-versions = ">=3.9" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, @@ -1275,16 +1269,15 @@ files = [ {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] -markers = {main = "extra == \"geoh5py\"", dev = "python_version == \"3.10\""} +markers = {dev = "python_version == \"3.10\""} [[package]] name = "typing-inspection" version = "0.4.1" description = "Runtime typing introspection tools" -optional = true +optional = false python-versions = ">=3.9" groups = ["main"] -markers = "extra == \"geoh5py\"" files = [ {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, @@ -1325,10 +1318,7 @@ files = [ [package.dependencies] numpy = ">=1.7" -[extras] -geoh5py = ["geoh5py"] - [metadata] lock-version = "2.1" python-versions = ">=3.10,<4.0" -content-hash = "856166e4b9dcdb36477daa7d13d6485e532ad59f4f795e3f5e34b0438f93b811" +content-hash = "b80f46ff2b2e305712e22f0405d4d63eb8cad9140b46499add31f6daaa2e36f7" diff --git a/pyproject.toml b/pyproject.toml index 002cba8b..d9828ee7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,26 +1,33 @@ [build-system] -requires = ["poetry-core>=1.0.0", "setuptools"] +requires = ["poetry-core>=1.8.0"] build-backend = "poetry.core.masonry.api" [project] name = "mira-omf" -version = "3.4.0-alpha.1" +version = "3.4.0a1" +requires-python = ">=3.10,<4.0" description = "API Library for Open Mining Format" license = "MIT" +keywords = ["geology", "geophysics", "earth sciences"] +readme = "README.rst" +dynamic = ["dependencies", "classifiers"] authors = [ { name = "Mira Geoscience", email = "support@mirageoscience.com" }, { name = "Global Mining Guidelines Group", email = "info@gmggroup.org" } ] maintainers = [{ name = "Dominique Fournier", email = "dominiquef@mirageoscience.com" }] + +[project.urls] repository = "https://github.com/MiraGeoscience/omf" -homepage = "https://www.mirageoscience.com/mining-industry-software/python-integration/" #documentation = "https://mirageoscience-omf.readthedocs-hosted.com/" +homepage = "https://www.mirageoscience.com/mining-industry-software/python-integration/" -requires-python = ">=3.10,<4.0" - -readme = "README.rst" +[project.scripts] +geoh5_to_omf = 'omf.scripts.geoh5_to_omf:main' +omf_to_geoh5 = 'omf.scripts.omf_to_geoh5:main' -keywords = ["geology", "geophysics", "earth sciences"] +[tool.poetry] +requires-poetry = '>=2.0,<3.0' classifiers = [ 'Development Status :: 4 - Beta', @@ -35,22 +42,10 @@ classifiers = [ 'Natural Language :: English', ] -dependencies = [ - "numpy ~=1.26.0", - "properties ==0.6.*", - "pypng >=0.20220715", - "six >=1.16", - "vectormath ==0.2.*" -] - -[project.optional-dependencies] -geoh5py = [ - "geoh5py @ git+https://github.com/MiraGeoscience/geoh5py.git@develop" +packages = [ + { include = "omf" }, ] -[tool.setuptools.packages.find] -where = ["omf"] - include = [ { path = "COPYING" }, { path = "COPYING.LESSER" }, @@ -60,6 +55,19 @@ include = [ { path = "docs/**/THIRD_PARTY_SOFTWARE.rst" }, ] +[tool.poetry.dependencies] +numpy = "~1.26.0" # also in geoh5py +properties = "0.6.*" +pypng = "^0.20220715" +six = "^1.16" +vectormath = "0.2.*" + +## dependencies from Git repositories +#------------------------------------ +#geoh5py = {version = ">=0.12.0a1, <0.13.dev", allow-prereleases = true} +geoh5py = {git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop"} +#geoh5py = {path = "../geoh5py", develop = true} + [tool.poetry.group.dev.dependencies] Pygments = "*" pylint = "*" @@ -97,6 +105,7 @@ ignore = [ "RUF005", # collection-literal-concatenation - wrong suggestion with numpy arrays "RUF012", # TODO ] + select = [ "A", # flake8-builtins "B", # flake8-bugbear From 81215542cb7c1316260422989d6e34a3fc8b779e Mon Sep 17 00:00:00 2001 From: saicheranb Date: Sun, 17 Aug 2025 18:03:09 -0400 Subject: [PATCH 16/19] Fix version format in __init__.py from "3.4.0-alpha.1" to "3.4.0a1" --- omf/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omf/__init__.py b/omf/__init__.py index 9de0d1be..33b2ee37 100644 --- a/omf/__init__.py +++ b/omf/__init__.py @@ -44,7 +44,7 @@ from .volume import VolumeElement, VolumeGridGeometry -__version__ = "3.4.0-alpha.1" +__version__ = "3.4.0a1" __author__ = "Global Mining Standards and Guidelines Group, Mira Geoscience Ltd." __license__ = "MIT License" __copyright__ = ( From e2367b337679fac3396716d6d0746809d1284ad7 Mon Sep 17 00:00:00 2001 From: saicheranb Date: Sun, 17 Aug 2025 18:14:50 -0400 Subject: [PATCH 17/19] updated version_test.py --- tests/version_test.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/version_test.py b/tests/version_test.py index 224b20f6..3422197a 100644 --- a/tests/version_test.py +++ b/tests/version_test.py @@ -12,13 +12,12 @@ from __future__ import annotations -import re from pathlib import Path import tomli as toml import yaml from jinja2 import Template -from packaging.version import Version +from packaging.version import InvalidVersion, Version import omf @@ -64,11 +63,13 @@ def version_base_and_pre() -> tuple[str, str]: return match[1], match[2] -def test_version_is_semver(): - semver_re = ( - r"^(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)" - r"(?:-(?P(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)" - r"(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?" - r"(?:\+(?P[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$" - ) - assert re.search(semver_re, omf.__version__) is not None +def validate_version(version_str): + try: + version = Version(version_str) + return (version.major, version.minor, version.micro, version.pre, version.post) + except InvalidVersion: + return None + + +def test_version_is_valid(): + assert validate_version(omf.__version__) is not None \ No newline at end of file From cc2803d4f81f2f68535e25664c4da2047205d40f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 17 Aug 2025 22:15:08 +0000 Subject: [PATCH 18/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/version_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/version_test.py b/tests/version_test.py index 3422197a..a3a631b4 100644 --- a/tests/version_test.py +++ b/tests/version_test.py @@ -72,4 +72,4 @@ def validate_version(version_str): def test_version_is_valid(): - assert validate_version(omf.__version__) is not None \ No newline at end of file + assert validate_version(omf.__version__) is not None From ed7e171c9ecc7cc811e3b2a76b7aa005c6d5ef67 Mon Sep 17 00:00:00 2001 From: saicheranb Date: Sun, 17 Aug 2025 18:25:11 -0400 Subject: [PATCH 19/19] updated version_test.py --- tests/version_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/version_test.py b/tests/version_test.py index a3a631b4..d261db48 100644 --- a/tests/version_test.py +++ b/tests/version_test.py @@ -12,6 +12,7 @@ from __future__ import annotations +import re from pathlib import Path import tomli as toml