resfo-utilities 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of resfo-utilities might be problematic. Click here for more details.

Files changed (38) hide show
  1. resfo_utilities-0.0.1/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  2. resfo_utilities-0.0.1/.github/dependabot.yml +18 -0
  3. resfo_utilities-0.0.1/.github/mypy-matcher.json +18 -0
  4. resfo_utilities-0.0.1/.github/workflows/publish_to_pypi.yml +28 -0
  5. resfo_utilities-0.0.1/.github/workflows/testing.yml +35 -0
  6. resfo_utilities-0.0.1/.github/workflows/typing.yml +43 -0
  7. resfo_utilities-0.0.1/.gitignore +48 -0
  8. resfo_utilities-0.0.1/.mypy.ini +20 -0
  9. resfo_utilities-0.0.1/.pre-commit-config.yaml +44 -0
  10. resfo_utilities-0.0.1/.readthedocs.yaml +16 -0
  11. resfo_utilities-0.0.1/CONTRIBUTING.md +28 -0
  12. resfo_utilities-0.0.1/PKG-INFO +70 -0
  13. resfo_utilities-0.0.1/README.md +36 -0
  14. resfo_utilities-0.0.1/SECURITY.md +16 -0
  15. resfo_utilities-0.0.1/docs/requirements.txt +2 -0
  16. resfo_utilities-0.0.1/docs/source/api_reference.rst +10 -0
  17. resfo_utilities-0.0.1/docs/source/conf.py +23 -0
  18. resfo_utilities-0.0.1/docs/source/glossary.rst +23 -0
  19. resfo_utilities-0.0.1/docs/source/index.rst +11 -0
  20. resfo_utilities-0.0.1/pyproject.toml +62 -0
  21. resfo_utilities-0.0.1/setup.cfg +4 -0
  22. resfo_utilities-0.0.1/src/resfo_utilities/__init__.py +3 -0
  23. resfo_utilities-0.0.1/src/resfo_utilities/_cornerpoint_grid.py +461 -0
  24. resfo_utilities-0.0.1/src/resfo_utilities.egg-info/PKG-INFO +70 -0
  25. resfo_utilities-0.0.1/src/resfo_utilities.egg-info/SOURCES.txt +36 -0
  26. resfo_utilities-0.0.1/src/resfo_utilities.egg-info/dependency_links.txt +1 -0
  27. resfo_utilities-0.0.1/src/resfo_utilities.egg-info/requires.txt +17 -0
  28. resfo_utilities-0.0.1/src/resfo_utilities.egg-info/top_level.txt +1 -0
  29. resfo_utilities-0.0.1/tests/__init__.py +0 -0
  30. resfo_utilities-0.0.1/tests/conftest.py +10 -0
  31. resfo_utilities-0.0.1/tests/integration/__init__.py +0 -0
  32. resfo_utilities-0.0.1/tests/integration/conftest.py +14 -0
  33. resfo_utilities-0.0.1/tests/integration/test_grid.py +315 -0
  34. resfo_utilities-0.0.1/tests/performance/__init__.py +0 -0
  35. resfo_utilities-0.0.1/tests/performance/test_find_cell_performance.py +29 -0
  36. resfo_utilities-0.0.1/tests/unit/__init__.py +0 -0
  37. resfo_utilities-0.0.1/tests/unit/test_cornerpoint_grid.py +435 -0
  38. resfo_utilities-0.0.1/uv.lock +1674 -0
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Environment (please complete the following information):**
27
+ - OS: [e.g. iOS]
28
+ - Version [e.g. 4.0.0]
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,18 @@
1
+ ---
2
+ version: 2
3
+ updates:
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+
9
+ - package-ecosystem: "uv"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "weekly"
13
+ allow:
14
+ - dependency-type: "all"
15
+ groups:
16
+ all-deps:
17
+ patterns:
18
+ - "*"
@@ -0,0 +1,18 @@
1
+ {
2
+ "problemMatcher": [
3
+ {
4
+ "owner": "mypy",
5
+ "severity": "error",
6
+ "pattern": [
7
+ {
8
+ "regexp": "^([^:]*):(\\d+):(?:(\\d+):)? error: (.*?)(?: \\[(\\S+)\\])?$",
9
+ "file": 1,
10
+ "line": 2,
11
+ "column": 3,
12
+ "message": 4,
13
+ "code": 5
14
+ }
15
+ ]
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,28 @@
1
+ name: Publish Python 🐍 distributions 📦 to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '*'
7
+
8
+ jobs:
9
+ build-n-publish:
10
+ environment:
11
+ name: pypi
12
+ url: https://pypi.org/p/resfo-utilities
13
+ name: Build and publish Python 🐍 distributions 📦 to PyPI
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
17
+ steps:
18
+ - uses: actions/checkout@v5
19
+ - uses: actions/setup-python@v6
20
+ with:
21
+ python-version: 3.13
22
+ cache: 'pip'
23
+ - name: Install pypa/build
24
+ run: python -m pip install build
25
+ - name: Build a binary wheel and a source tarball
26
+ run: python -m build --sdist --wheel --outdir dist/ .
27
+ - name: Publish package distributions to PyPI
28
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,35 @@
1
+ name: Run tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags: "*"
8
+ pull_request:
9
+ env:
10
+ UV_FROZEN: true # https://docs.astral.sh/uv/configuration/environment/#uv_frozen
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
15
+
16
+ jobs:
17
+ tests:
18
+ name: "Python ${{ matrix.python-version }}"
19
+ runs-on: "ubuntu-latest"
20
+ strategy:
21
+ matrix:
22
+ python-version: ["3.11", "3.12", "3.13"]
23
+
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/setup-python@v6
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+ - uses: astral-sh/setup-uv@v6
30
+ with:
31
+ enable-cache: true
32
+ python-version: ${{ matrix.python-version }}
33
+ - run: uv sync --all-extras
34
+ - run: uv run pytest tests/
35
+ - run: uv run sphinx-build -W -n -E docs/source/ docs/output
@@ -0,0 +1,43 @@
1
+ name: Type checking
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ env:
10
+ UV_FROZEN: true
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
15
+
16
+ jobs:
17
+ type-checking:
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 15
20
+
21
+ steps:
22
+ - uses: actions/checkout@v5
23
+ with:
24
+ fetch-depth: 0
25
+ filter: tree:0
26
+
27
+ - uses: actions/setup-python@v6
28
+ with:
29
+ python-version: "3.13"
30
+
31
+ - name: Install uv
32
+ uses: astral-sh/setup-uv@v6
33
+ with:
34
+ enable-cache: true
35
+ python-version: "3.13"
36
+
37
+ - run: |
38
+ uv sync --extra dev
39
+
40
+ - run: echo ::add-matcher::.github/mypy-matcher.json
41
+ - name: Run mypy
42
+ run: |
43
+ uv run mypy src
@@ -0,0 +1,48 @@
1
+ # NFS files marked for deletion
2
+ .nfs*
3
+
4
+ # Temporary files when editing
5
+ *.swp
6
+ *~
7
+
8
+ # IDE ignore
9
+ ## IntelliJ/PyCharm
10
+ .idea
11
+ *.iml
12
+ ## VS code
13
+ .vscode
14
+ ## Eclipse?
15
+ /.project
16
+ # neovim (reversed rule)
17
+ !.github
18
+
19
+ # pytest ignores
20
+ .pytest_cache
21
+
22
+ # bytecode compiled python
23
+ __pycache__
24
+
25
+ # GNU tags
26
+ /GPATH
27
+ /GRTAGS
28
+ /GTAGS
29
+ /gtags.sh
30
+
31
+ # MacOS
32
+ *.DS_Store
33
+ scratch.sparsebundle
34
+
35
+ # Common Python virtual env dir
36
+ /venv
37
+
38
+ # python package. by distutils
39
+ *.egg*
40
+
41
+ ## pip install without -e
42
+ /build
43
+
44
+ # cache folder for hypothesis framework
45
+ .hypothesis
46
+
47
+ # config for pyright
48
+ pyrightconfig.json
@@ -0,0 +1,20 @@
1
+ [mypy]
2
+
3
+ warn_unused_configs = True
4
+ disallow_any_generics = True
5
+ disallow_subclassing_any = true
6
+ disallow_untyped_calls = True
7
+ disallow_untyped_defs = True
8
+ disallow_incomplete_defs = True
9
+ check_untyped_defs = True
10
+ disallow_untyped_decorators = True
11
+ warn_unused_ignores = True
12
+ warn_redundant_casts = True
13
+ strict_equality = True
14
+ extra_checks = True
15
+
16
+ [mypy-resfo.*]
17
+ ignore_missing_imports = True
18
+
19
+ [mypy-tests.*]
20
+ ignore_errors = True
@@ -0,0 +1,44 @@
1
+ default_install_hook_types: [pre-commit]
2
+ repos:
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v6.0.0
5
+ hooks:
6
+ - id: check-json
7
+ - id: check-yaml
8
+ - id: end-of-file-fixer
9
+ - id: trailing-whitespace
10
+
11
+ - repo: https://github.com/pre-commit/mirrors-mypy
12
+ rev: 'v1.18.2'
13
+ hooks:
14
+ - id: mypy
15
+
16
+ - repo: https://github.com/astral-sh/ruff-pre-commit
17
+ rev: v0.12.11
18
+ hooks:
19
+ - id: ruff-check
20
+ args: [ --fix ]
21
+ - id: ruff-format
22
+
23
+ - repo: https://github.com/astral-sh/uv-pre-commit
24
+ rev: 0.8.14
25
+ hooks:
26
+ - id: uv-lock
27
+
28
+ - repo: local
29
+ hooks:
30
+ - id: pytest
31
+ name: pytest
32
+ entry: uv
33
+ args: [run, --all-extras, pytest, --benchmark-disable, tests]
34
+ language: system
35
+ types: [python]
36
+ stages: [pre-push]
37
+ pass_filenames: false
38
+ - id: docs
39
+ name: docs
40
+ entry: uv
41
+ args: [run, --all-extras, sphinx-build, -W, -n, -E, docs/source, docs/output]
42
+ language: system
43
+ stages: [pre-push]
44
+ pass_filenames: false
@@ -0,0 +1,16 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.10"
7
+
8
+ python:
9
+ install:
10
+ - requirements: docs/requirements.txt
11
+ - method: pip
12
+ path: .
13
+
14
+ sphinx:
15
+ builder: html
16
+ configuration: docs/source/conf.py
@@ -0,0 +1,28 @@
1
+ # Contributing
2
+
3
+ The following is a set of guidelines for contributing to resfo-utilities.
4
+
5
+ ## Ground Rules
6
+
7
+ 1. We use pre-commit for checking code style
8
+ 1. All code must be testable and unit tested.
9
+
10
+ ## Commits
11
+
12
+ We strive to keep a consistent and clean git history and all contributions should adhere to the following:
13
+
14
+ 1. All tests should pass on all commits(*)
15
+ 1. A commit should do one atomic change on the repository
16
+ 1. The commit message should be descriptive.
17
+
18
+ We expect commit messages to follow the style described [here](https://chris.beams.io/posts/git-commit/). Also, focus on making clear the reasons why you made the change in the first place—the way things worked before the change (and what was wrong with that), the way they work now, and why you decided to solve it the way you did. A commit body is required for anything except very small changes.
19
+
20
+ (*) Tip for making sure all tests passes, try out --exec while rebasing. You can then have all tests run per commit in a single command.
21
+ ## Pull Request Process
22
+
23
+ 1. Work on your own fork of the main repo
24
+ 1. Push your commits and make a draft pull request using the pull request template.
25
+ 1. Check that your pull request passes all tests.
26
+ 1. When all tests have passed and your are happy with your changes, change your pull request to "ready for review"
27
+ and ask for a code review.
28
+ 1. When your code has been approved—rebase, squash and merge your changes.
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.4
2
+ Name: resfo-utilities
3
+ Version: 0.0.1
4
+ Summary: A utility library for working with the output of reservoir simulators.
5
+ Author-email: Equinor <fg_sib-scout@equinor.com>
6
+ Maintainer-email: Eivind Jahren <ejah@equinor.com>, Håkon Steinkopf Søhoel <hsoho@equinor.com>
7
+ License: LGPL-3.0
8
+ Project-URL: Homepage, https://github.com/equinor/resfo-utilities
9
+ Project-URL: Repository, https://github.com/equinor/resfo-utilities
10
+ Project-URL: Bug Tracker, https://github.com/equinor/resfo-utilities/issues
11
+ Classifier: Development Status :: 1 - Planning
12
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: <3.14,>=3.11
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: numpy
20
+ Requires-Dist: resfo
21
+ Requires-Dist: shapely
22
+ Requires-Dist: trimesh[easy]
23
+ Requires-Dist: matplotlib
24
+ Provides-Extra: doc
25
+ Requires-Dist: sphinx; extra == "doc"
26
+ Requires-Dist: sphinx-rtd-theme; extra == "doc"
27
+ Provides-Extra: dev
28
+ Requires-Dist: pytest; extra == "dev"
29
+ Requires-Dist: hypothesis; extra == "dev"
30
+ Requires-Dist: pre-commit; extra == "dev"
31
+ Requires-Dist: mypy; extra == "dev"
32
+ Requires-Dist: types-shapely; extra == "dev"
33
+ Requires-Dist: pytest-benchmark; extra == "dev"
34
+
35
+ resfo
36
+ ===========
37
+
38
+
39
+ resfo-utilities is a library for working with output from
40
+ several reservoir simulators such as [opm
41
+ flow](https://github.com/OPM/opm-simulators).
42
+
43
+ Installation
44
+ ============
45
+
46
+ `pip install resfo-utilities`
47
+
48
+
49
+ How to contribute
50
+ =================
51
+
52
+ We use uv to have one synchronized development environment for all packages.
53
+ See [installing uv](https://docs.astral.sh/uv/getting-started/installation/). We
54
+ recommend either installing uv using your systems package manager, or creating
55
+ a small virtual environment you intall base packages into (such as `uv` and `pre-commit`).
56
+
57
+ Once uv is installed, you can get a development environment by running:
58
+
59
+ ```sh
60
+ git clone https://github.com/equinor/resfo-utilities
61
+ cd resfo-utilities
62
+ uv sync --all-extras
63
+ ```
64
+
65
+
66
+ You should set up `pre-commit` to ensure style checks are done as you commit:
67
+
68
+ ```bash
69
+ uv run pre-commit install --hook-type pre-push
70
+ ```
@@ -0,0 +1,36 @@
1
+ resfo
2
+ ===========
3
+
4
+
5
+ resfo-utilities is a library for working with output from
6
+ several reservoir simulators such as [opm
7
+ flow](https://github.com/OPM/opm-simulators).
8
+
9
+ Installation
10
+ ============
11
+
12
+ `pip install resfo-utilities`
13
+
14
+
15
+ How to contribute
16
+ =================
17
+
18
+ We use uv to have one synchronized development environment for all packages.
19
+ See [installing uv](https://docs.astral.sh/uv/getting-started/installation/). We
20
+ recommend either installing uv using your systems package manager, or creating
21
+ a small virtual environment you intall base packages into (such as `uv` and `pre-commit`).
22
+
23
+ Once uv is installed, you can get a development environment by running:
24
+
25
+ ```sh
26
+ git clone https://github.com/equinor/resfo-utilities
27
+ cd resfo-utilities
28
+ uv sync --all-extras
29
+ ```
30
+
31
+
32
+ You should set up `pre-commit` to ensure style checks are done as you commit:
33
+
34
+ ```bash
35
+ uv run pre-commit install --hook-type pre-push
36
+ ```
@@ -0,0 +1,16 @@
1
+ If you discover a security vulnerability in this project, please follow these steps to responsibly disclose it:
2
+
3
+ 1. **Do not** create a public GitHub issue for the vulnerability.
4
+ 2. Follow our guideline for Responsible Disclosure Policy at [https://www.equinor.com/about-us/csirt](https://www.equinor.com/about-us/csirt) to report the issue
5
+
6
+ The following information will help us triage your report more quickly:
7
+
8
+ - Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
9
+ - Full paths of source file(s) related to the manifestation of the issue
10
+ - The location of the affected source code (tag/branch/commit or direct URL)
11
+ - Any special configuration required to reproduce the issue
12
+ - Step-by-step instructions to reproduce the issue
13
+ - Proof-of-concept or exploit code (if possible)
14
+ - Impact of the issue, including how an attacker might exploit the issue
15
+
16
+ We prefer all communications to be in English.
@@ -0,0 +1,2 @@
1
+ sphinx
2
+ sphinx_rtd_theme
@@ -0,0 +1,10 @@
1
+ API Reference
2
+ =============
3
+
4
+ .. autoclass:: resfo_utilities.CornerpointGrid
5
+ :members:
6
+
7
+ .. autoclass:: resfo_utilities.InvalidEgridFileError
8
+
9
+ .. autoclass:: resfo_utilities.MapAxes
10
+ :members:
@@ -0,0 +1,23 @@
1
+ project = "resfo-utilities"
2
+ copyright = "2022, Equinor"
3
+ author = "Equinor"
4
+ release = "1.0.0"
5
+
6
+
7
+ extensions = ["sphinx.ext.autodoc", "sphinx.ext.doctest", "sphinx.ext.intersphinx"]
8
+ intersphinx_mapping = {
9
+ "numpy": ("https://numpy.org/doc/stable/", None),
10
+ "python": ("https://docs.python.org/3", None),
11
+ }
12
+ nitpick_ignore = [
13
+ ("py:class", "np.float32"),
14
+ ("py:class", "numpy.float32"),
15
+ ("py:class", "collections.abc.Buffer"),
16
+ ("py:class", "npt.ArrayLike"),
17
+ ("py:class", "ArrayLike"),
18
+ ("py:class", "npt.NDArray"),
19
+ ("py:class", "np.bool_"),
20
+ ]
21
+ language = "python"
22
+ html_theme = "sphinx_rtd_theme"
23
+ autodoc_type_aliases = {"npt.ArrayLike": "ArrayLike"}
@@ -0,0 +1,23 @@
1
+ Glossary
2
+ ========
3
+
4
+ .. glossary::
5
+
6
+ corner-point grid
7
+ A corner-point grid is a tessellation of a 3D volumne where
8
+ each cell is a hexahedron. See the `corner-point grid wikipedia page`_ or
9
+ `OPM Flow manual`_ section 6.2.2 for more information.
10
+
11
+ pillar
12
+ In a :term:`corner-point grid` the pillars are a set of straight lines used
13
+ to define each cell. The 8 corner vertecies of each cell is determined by
14
+ the giving the height along four adjecent pillars.
15
+
16
+ UTM-coordinates
17
+ The Universal Transverse Mercator (UTM) is a coordinate system based on
18
+ the transverse Mercator map projection of the Earth spheroid. See
19
+ the `UTM wikipedia page`_.
20
+
21
+ .. _OPM Flow manual: https://opm-project.org/wp-content/uploads/2023/06/OPM_Flow_Reference_Manual_2023-04_Rev-0_Reduced.pdf
22
+ .. _corner-point grid wikipedia page: https://en.wikipedia.org/wiki/Corner-point_grid
23
+ .. _UTM wikipedia page: https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system
@@ -0,0 +1,11 @@
1
+ ======================================================================
2
+ resfo-utilities: A library for working with reservoir simulator output
3
+ ======================================================================
4
+
5
+
6
+ .. toctree::
7
+ :hidden:
8
+
9
+ self
10
+ glossary
11
+ api_reference
@@ -0,0 +1,62 @@
1
+ [build-system]
2
+ requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "resfo-utilities"
7
+ description="A utility library for working with the output of reservoir simulators."
8
+ readme = "README.md"
9
+ requires-python = ">=3.11, <3.14"
10
+ classifiers=[
11
+ "Development Status :: 1 - Planning",
12
+ "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
13
+ "Programming Language :: Python",
14
+ "Programming Language :: Python :: 3.11",
15
+ "Programming Language :: Python :: 3.12",
16
+ "Programming Language :: Python :: 3.13",
17
+ ]
18
+ dependencies = ["numpy","resfo", "shapely", "trimesh[easy]", "matplotlib"]
19
+ dynamic=["version"]
20
+
21
+ authors = [
22
+ {name="Equinor", email="fg_sib-scout@equinor.com"},
23
+ ]
24
+
25
+ maintainers = [
26
+ {name="Eivind Jahren", email="ejah@equinor.com"},
27
+ {name="Håkon Steinkopf Søhoel", email="hsoho@equinor.com"},
28
+ ]
29
+
30
+ [project.license]
31
+ text = "LGPL-3.0"
32
+
33
+ [project.urls]
34
+ "Homepage" = "https://github.com/equinor/resfo-utilities"
35
+ "Repository" = "https://github.com/equinor/resfo-utilities"
36
+ "Bug Tracker" = "https://github.com/equinor/resfo-utilities/issues"
37
+
38
+ [project.optional-dependencies]
39
+ doc = [
40
+ "sphinx",
41
+ "sphinx-rtd-theme",
42
+ ]
43
+ dev = [
44
+ "pytest",
45
+ "hypothesis",
46
+ "pre-commit",
47
+ "mypy",
48
+ "types-shapely",
49
+ "pytest-benchmark",
50
+ ]
51
+
52
+ [tool.setuptools_scm]
53
+
54
+ [tool.ruff]
55
+ src = ["src"]
56
+ line-length = 88
57
+
58
+ [tool.pytest.ini_options]
59
+ addopts = "-ra --strict-markers"
60
+
61
+ [tool.uv]
62
+ fork-strategy = "requires-python"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ from ._cornerpoint_grid import CornerpointGrid, InvalidEgridFileError, MapAxes
2
+
3
+ __all__ = ["CornerpointGrid", "InvalidEgridFileError", "MapAxes"]