ome-arrow 0.0.2__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.
Files changed (97) hide show
  1. ome_arrow-0.0.2/.github/ISSUE_TEMPLATE/issue.yml +46 -0
  2. ome_arrow-0.0.2/.github/PULL_REQUEST_TEMPLATE.md +37 -0
  3. ome_arrow-0.0.2/.github/dependabot.yml +27 -0
  4. ome_arrow-0.0.2/.github/release-drafter.yml +21 -0
  5. ome_arrow-0.0.2/.github/workflows/draft-release.yml +23 -0
  6. ome_arrow-0.0.2/.github/workflows/publish-docs.yml +41 -0
  7. ome_arrow-0.0.2/.github/workflows/publish-pypi.yml +33 -0
  8. ome_arrow-0.0.2/.github/workflows/run-tests.yml +46 -0
  9. ome_arrow-0.0.2/.gitignore +214 -0
  10. ome_arrow-0.0.2/.pre-commit-config.yaml +58 -0
  11. ome_arrow-0.0.2/.python-version +1 -0
  12. ome_arrow-0.0.2/CITATION.cff +59 -0
  13. ome_arrow-0.0.2/CODE_OF_CONDUCT.md +132 -0
  14. ome_arrow-0.0.2/CONTRIBUTING.md +129 -0
  15. ome_arrow-0.0.2/LICENSE +28 -0
  16. ome_arrow-0.0.2/PKG-INFO +34 -0
  17. ome_arrow-0.0.2/README.md +3 -0
  18. ome_arrow-0.0.2/docs/src/conf.py +85 -0
  19. ome_arrow-0.0.2/docs/src/examples/learning_to_fly_with_ome-arrow.ipynb +405 -0
  20. ome_arrow-0.0.2/docs/src/examples/learning_to_fly_with_ome-arrow.py +57 -0
  21. ome_arrow-0.0.2/docs/src/index.md +16 -0
  22. ome_arrow-0.0.2/docs/src/python-api.md +11 -0
  23. ome_arrow-0.0.2/pyproject.toml +125 -0
  24. ome_arrow-0.0.2/setup.cfg +4 -0
  25. ome_arrow-0.0.2/src/ome_arrow/__init__.py +19 -0
  26. ome_arrow-0.0.2/src/ome_arrow/_version.py +34 -0
  27. ome_arrow-0.0.2/src/ome_arrow/core.py +492 -0
  28. ome_arrow-0.0.2/src/ome_arrow/export.py +422 -0
  29. ome_arrow-0.0.2/src/ome_arrow/ingest.py +932 -0
  30. ome_arrow-0.0.2/src/ome_arrow/meta.py +90 -0
  31. ome_arrow-0.0.2/src/ome_arrow/transform.py +182 -0
  32. ome_arrow-0.0.2/src/ome_arrow/utils.py +83 -0
  33. ome_arrow-0.0.2/src/ome_arrow/view.py +286 -0
  34. ome_arrow-0.0.2/src/ome_arrow.egg-info/PKG-INFO +34 -0
  35. ome_arrow-0.0.2/src/ome_arrow.egg-info/SOURCES.txt +95 -0
  36. ome_arrow-0.0.2/src/ome_arrow.egg-info/dependency_links.txt +1 -0
  37. ome_arrow-0.0.2/src/ome_arrow.egg-info/requires.txt +16 -0
  38. ome_arrow-0.0.2/src/ome_arrow.egg-info/top_level.txt +1 -0
  39. ome_arrow-0.0.2/tests/conftest.py +70 -0
  40. ome_arrow-0.0.2/tests/data/examplehuman/AS_09125_050116030001_D03f00d0.tif +0 -0
  41. ome_arrow-0.0.2/tests/data/examplehuman/AS_09125_050116030001_D03f00d1.tif +0 -0
  42. ome_arrow-0.0.2/tests/data/examplehuman/AS_09125_050116030001_D03f00d2.tif +0 -0
  43. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS000.tif +0 -0
  44. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS001.tif +0 -0
  45. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS002.tif +0 -0
  46. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS003.tif +0 -0
  47. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS004.tif +0 -0
  48. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS005.tif +0 -0
  49. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS006.tif +0 -0
  50. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS007.tif +0 -0
  51. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS008.tif +0 -0
  52. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS009.tif +0 -0
  53. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS010.tif +0 -0
  54. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS011.tif +0 -0
  55. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS012.tif +0 -0
  56. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS013.tif +0 -0
  57. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS014.tif +0 -0
  58. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS015.tif +0 -0
  59. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS016.tif +0 -0
  60. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS017.tif +0 -0
  61. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS018.tif +0 -0
  62. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS019.tif +0 -0
  63. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS020.tif +0 -0
  64. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C111_ZS021.tif +0 -0
  65. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS000.tif +0 -0
  66. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS001.tif +0 -0
  67. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS002.tif +0 -0
  68. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS003.tif +0 -0
  69. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS004.tif +0 -0
  70. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS005.tif +0 -0
  71. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS006.tif +0 -0
  72. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS007.tif +0 -0
  73. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS008.tif +0 -0
  74. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS009.tif +0 -0
  75. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS010.tif +0 -0
  76. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS011.tif +0 -0
  77. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS012.tif +0 -0
  78. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS013.tif +0 -0
  79. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS014.tif +0 -0
  80. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS015.tif +0 -0
  81. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS016.tif +0 -0
  82. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS017.tif +0 -0
  83. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS018.tif +0 -0
  84. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS019.tif +0 -0
  85. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS020.tif +0 -0
  86. ome_arrow-0.0.2/tests/data/nviz-artificial-4d-dataset/E99_C222_ZS021.tif +0 -0
  87. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/4D-series.ome.tiff +0 -0
  88. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/multi-channel-4D-series.ome.tiff +0 -0
  89. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/multi-channel-time-series.ome.tiff +0 -0
  90. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/multi-channel-z-series.ome.tiff +0 -0
  91. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/multi-channel.ome.tiff +0 -0
  92. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/single-channel.ome.tiff +0 -0
  93. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/time-series.ome.tif +0 -0
  94. ome_arrow-0.0.2/tests/data/ome-artificial-5d-datasets/z-series.ome.tiff +0 -0
  95. ome_arrow-0.0.2/tests/test_core.py +294 -0
  96. ome_arrow-0.0.2/tests/test_utils.py +16 -0
  97. ome_arrow-0.0.2/uv.lock +4417 -0
@@ -0,0 +1,46 @@
1
+ # GitHub Issue template for bug reports
2
+ name: Open a GitHub issue
3
+ description: >
4
+ Please use this form to send along new ideas for content or
5
+ changes that might be helpful!
6
+
7
+ body:
8
+ - type: checkboxes
9
+ attributes:
10
+ label: Is this a duplicate of an existing idea for this project?
11
+ description: >
12
+ Please make sure to search the existing issues first
13
+ to see whether the same issue was reported already.
14
+ If you find an existing issue, please don't hesitate to comment
15
+ on it or add a reaction to existing content!
16
+ options:
17
+ - label: >
18
+ I found no existing covering this topic.
19
+ required: true
20
+
21
+ - type: textarea
22
+ id: description
23
+ attributes:
24
+ label: What is your idea?
25
+ description: >
26
+ Please provide a specific description of what you'd like to see
27
+ including the context and what the result might look like.
28
+ placeholder: >
29
+ For example: "When x happens I see y.
30
+ The following might be a good way to address this ..."
31
+ validations:
32
+ required: true
33
+
34
+ - type: checkboxes
35
+ attributes:
36
+ label: Would you like to work on a solution for this?
37
+ description: >
38
+ This is a community-driven project and we
39
+ love new contributors (including through opening or adding to issues)!
40
+ This is an optional check to help us understand your interest to be
41
+ involved (especially if you already have a good understanding
42
+ of how to implement it).
43
+ We are happy to guide you in the contribution process and please
44
+ don't hesitate to reach out for help along the way.
45
+ options:
46
+ - label: Yes I am willing to submit a PR for this!
@@ -0,0 +1,37 @@
1
+ <!-- _modified from [EmbeddedArtistry](https://embeddedartistry.com/blog/2017/08/04/a-github-pull-request-template-for-your-projects/)_
2
+ _referenced with modifications from [pycytominer](https://github.com/cytomining/pycytominer/blob/master/.github/PULL_REQUEST_TEMPLATE.md)_ -->
3
+
4
+ # Description
5
+
6
+ <!--
7
+ Thank you so much for your contribution to this project!
8
+
9
+ Please _succinctly_ summarize your proposed change.
10
+ Namely, consider addressing the following questions:
11
+
12
+ - What motivated you to open this pull request?
13
+ - Were there any special adjustments you had to make to complete the work?
14
+ - Are there any issues which are related to this pull request (you may used a `#<digit>` to reference GitHub issues as links within this description)?
15
+
16
+ Also, if you haven't already, please use `pre-commit run --all-files` to help check your files using this project's pre-commit configuration.
17
+ Pre-commit checks will automatically run as part of opening this pull request and we seek to ensure all checks pass before merging changes.
18
+ -->
19
+
20
+ ## What kind of change(s) are included?
21
+
22
+ - [ ] Documentation (changes docs or other related content)
23
+ - [ ] Bug fix (fixes an issue).
24
+ - [ ] Enhancement (adds functionality).
25
+ - [ ] Breaking change (these changes would cause existing functionality to not work as expected).
26
+
27
+ # Checklist
28
+
29
+ Please ensure that all boxes are checked before indicating that this pull request is ready for review.
30
+
31
+ - [ ] I have read and followed the [CONTRIBUTING.md](CONTRIBUTING.md) guidelines.
32
+ - [ ] I have searched for existing content to ensure this is not a duplicate.
33
+ - [ ] I have performed a self-review of these additions (including spelling, grammar, and related).
34
+ - [ ] These changes pass all pre-commit checks.
35
+ - [ ] I have added comments to my code to help provide understanding
36
+ - [ ] I have added a test which covers the code changes found within this PR
37
+ - [ ] I have deleted all non-relevant text in this pull request template.
@@ -0,0 +1,27 @@
1
+ # GitHub Dependabot configuration
2
+ # Note: there is no interaction between this
3
+ # configuration and dependabot security updates.
4
+ # See here for more information:
5
+ # https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-dependabot-security-updates
6
+
7
+ version: 2
8
+ updates:
9
+ # GitHub Actions checks
10
+ # See here for more information:
11
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates
12
+ - package-ecosystem: "github-actions"
13
+ directory: "/"
14
+ schedule:
15
+ # Check for updates to GitHub Actions every week
16
+ interval: "weekly"
17
+
18
+ # Perform checks and updates for python uv environment.
19
+ # This depends on changes to dependabot via:
20
+ # https://github.com/dependabot/dependabot-core/pull/10040
21
+ # See here for more information:
22
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#pip-and-pip-compile
23
+ - package-ecosystem: "uv"
24
+ directory: "/"
25
+ schedule:
26
+ # Check for updates to uv environment files every week
27
+ interval: "weekly"
@@ -0,0 +1,21 @@
1
+ ---
2
+ # template configuration for release-drafter
3
+ # see: https://github.com/release-drafter/release-drafter
4
+ name-template: 'v$RESOLVED_VERSION'
5
+ tag-template: 'v$RESOLVED_VERSION'
6
+ version-resolver:
7
+ major:
8
+ labels:
9
+ - 'release-major'
10
+ minor:
11
+ labels:
12
+ - 'release-minor'
13
+ patch:
14
+ labels:
15
+ - 'release-patch'
16
+ default: patch
17
+ change-template: '- $TITLE (@$AUTHOR via #$NUMBER)'
18
+ template: |
19
+ ## Changes
20
+
21
+ $CHANGES
@@ -0,0 +1,23 @@
1
+ ---
2
+ # workflow for drafting releases on GitHub
3
+ # see: https://github.com/release-drafter/release-drafter
4
+ name: release drafter
5
+
6
+ on:
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ draft_release:
13
+ permissions:
14
+ # write permission is required to create a github release
15
+ contents: write
16
+ # write permission is required for autolabeler
17
+ # otherwise, read permission is required at least
18
+ pull-requests: write
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: release-drafter/release-drafter@v6
22
+ env:
23
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,41 @@
1
+ ---
2
+ # used for publishing documentation on push to main or published release
3
+ name: publish docs
4
+
5
+ on:
6
+ push:
7
+ branches:
8
+ - main
9
+ release:
10
+ types:
11
+ - published
12
+
13
+ jobs:
14
+ build:
15
+ # only build and deploy docs if the actor is not dependabot
16
+ if: ${{ github.actor != 'dependabot[bot]' }}
17
+ runs-on: ubuntu-22.04
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.11"
26
+ - name: Install the latest version of uv
27
+ uses: astral-sh/setup-uv@v6
28
+ - name: Build documentation
29
+ run: |
30
+ mkdir pages
31
+ touch pages/.nojekyll
32
+ cd docs
33
+ uv run --frozen sphinx-build src build
34
+ # remove any doctrees dirs which aren't needed for publishing
35
+ find ./build -type d -name '.doctrees' -exec rm -rf {} +
36
+ cp -r build/* ../pages/
37
+ - name: Deploy documentation
38
+ uses: JamesIves/github-pages-deploy-action@v4
39
+ with:
40
+ branch: pages
41
+ folder: pages
@@ -0,0 +1,33 @@
1
+ ---
2
+ # used for publishing packages to pypi on release
3
+ name: publish pypi release
4
+
5
+ on:
6
+ release:
7
+ types:
8
+ - published
9
+
10
+ jobs:
11
+ publish_pypi:
12
+ runs-on: ubuntu-latest
13
+ environment: release
14
+ permissions:
15
+ # IMPORTANT: this permission is mandatory for trusted publishing
16
+ id-token: write
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+ with:
21
+ fetch-depth: 0
22
+ - name: Fetch tags
23
+ run: git fetch --all --tags
24
+ - name: Python setup
25
+ uses: actions/setup-python@v5
26
+ with:
27
+ python-version: "3.11"
28
+ - name: Install the latest version of uv
29
+ uses: astral-sh/setup-uv@v6
30
+ - name: uv build distribution content
31
+ run: uv build
32
+ - name: Publish package distributions to PyPI
33
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,46 @@
1
+ ---
2
+ # used for running tests
3
+ name: tests
4
+
5
+ on:
6
+ push:
7
+ branches: [main]
8
+ pull_request:
9
+ branches: [main]
10
+
11
+ jobs:
12
+ pre_commit_checks:
13
+ runs-on: ubuntu-24.04
14
+ steps:
15
+ # checks out the repo
16
+ - uses: actions/checkout@v4
17
+ # run pre-commit
18
+ - name: Python setup
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.11"
22
+ - name: Install the latest version of uv
23
+ uses: astral-sh/setup-uv@v6
24
+ - uses: pre-commit/action@v3.0.1
25
+ # run pre-commit ci lite for automated fixes
26
+ - uses: pre-commit-ci/lite-action@v1.1.0
27
+ if: ${{ !cancelled() }}
28
+ run_tests:
29
+ strategy:
30
+ matrix:
31
+ python_version: ["3.10", "3.11", "3.12", "3.13"]
32
+ os: [ubuntu-24.04, macos-14]
33
+ runs-on: ${{ matrix.os }}
34
+ env:
35
+ OS: ${{ matrix.os }}
36
+ steps:
37
+ - name: Checkout
38
+ uses: actions/checkout@v4
39
+ - name: Python setup
40
+ uses: actions/setup-python@v5
41
+ with:
42
+ python-version: ${{ matrix.python_version }}
43
+ - name: Install the latest version of uv
44
+ uses: astral-sh/setup-uv@v6
45
+ - name: Run pytest
46
+ run: uv run --frozen pytest
@@ -0,0 +1,214 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ #uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+ #poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ #pdm.lock
116
+ #pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ #pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # SageMath parsed files
135
+ *.sage.py
136
+
137
+ # Environments
138
+ .env
139
+ .envrc
140
+ .venv
141
+ env/
142
+ venv/
143
+ ENV/
144
+ env.bak/
145
+ venv.bak/
146
+
147
+ # Spyder project settings
148
+ .spyderproject
149
+ .spyproject
150
+
151
+ # Rope project settings
152
+ .ropeproject
153
+
154
+ # mkdocs documentation
155
+ /site
156
+
157
+ # mypy
158
+ .mypy_cache/
159
+ .dmypy.json
160
+ dmypy.json
161
+
162
+ # Pyre type checker
163
+ .pyre/
164
+
165
+ # pytype static type analyzer
166
+ .pytype/
167
+
168
+ # Cython debug symbols
169
+ cython_debug/
170
+
171
+ # PyCharm
172
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
175
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
+ #.idea/
177
+
178
+ # Abstra
179
+ # Abstra is an AI-powered process automation framework.
180
+ # Ignore directories containing user credentials, local state, and settings.
181
+ # Learn more at https://abstra.io/docs
182
+ .abstra/
183
+
184
+ # Visual Studio Code
185
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
186
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
187
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
188
+ # you could uncomment the following to ignore the entire vscode folder
189
+ # .vscode/
190
+
191
+ # Ruff stuff:
192
+ .ruff_cache/
193
+
194
+ # PyPI configuration file
195
+ .pypirc
196
+
197
+ # Cursor
198
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
199
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
200
+ # refer to https://docs.cursor.com/context/ignore-files
201
+ .cursorignore
202
+ .cursorindexingignore
203
+
204
+ # Marimo
205
+ marimo/_static/
206
+ marimo/_lsp/
207
+ __marimo__/
208
+
209
+ _version.py
210
+
211
+ *.tiff
212
+ *.tif
213
+ *.zarr
214
+ *.parquet
@@ -0,0 +1,58 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v6.0.0
6
+ hooks:
7
+ - id: trailing-whitespace
8
+ - id: end-of-file-fixer
9
+ - id: check-yaml
10
+ - id: detect-private-key
11
+ - repo: https://github.com/tox-dev/pyproject-fmt
12
+ rev: "v2.11.1"
13
+ hooks:
14
+ - id: pyproject-fmt
15
+ - repo: https://github.com/citation-file-format/cffconvert
16
+ rev: 5295f87c0e261da61a7b919fc754e3a77edd98a7
17
+ hooks:
18
+ - id: validate-cff
19
+ - repo: https://github.com/codespell-project/codespell
20
+ rev: v2.4.1
21
+ hooks:
22
+ - id: codespell
23
+ exclude: |
24
+ (?x)^(
25
+ .*\.lock |
26
+ .*\.csv |
27
+ .*\.cff |
28
+ .*\.ipynb
29
+ )$
30
+ - repo: https://github.com/executablebooks/mdformat
31
+ rev: 0.7.21
32
+ hooks:
33
+ - id: mdformat
34
+ additional_dependencies:
35
+ - mdformat-gfm
36
+ - repo: https://github.com/adrienverge/yamllint
37
+ rev: v1.37.1
38
+ hooks:
39
+ - id: yamllint
40
+ exclude: pre-commit-config.yaml
41
+ - repo: https://github.com/astral-sh/ruff-pre-commit
42
+ rev: "v0.14.4"
43
+ hooks:
44
+ - id: ruff-format
45
+ - id: ruff-check
46
+ - repo: https://github.com/rhysd/actionlint
47
+ rev: v1.7.8
48
+ hooks:
49
+ - id: actionlint
50
+ - repo: https://gitlab.com/vojko.pribudic.foss/pre-commit-update
51
+ rev: v0.6.0
52
+ hooks:
53
+ - id: pre-commit-update
54
+ args: ["--keep", "mdformat", "--keep", "pre-commit-update", "--keep", "cffconvert"]
55
+ - repo: https://github.com/jendrikseipp/vulture
56
+ rev: 'v2.14'
57
+ hooks:
58
+ - id: vulture
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,59 @@
1
+ # This CITATION.cff file was generated with cffinit.
2
+ # Visit https://bit.ly/cffinit to generate yours today!
3
+ ---
4
+ cff-version: 1.2.0
5
+ title: ome_arrow
6
+ message: >-
7
+ If you use this software, please cite it using the
8
+ metadata from the CITATION.cff file.
9
+ type: software
10
+ authors:
11
+ - given-names: Dave
12
+ family-names: Bunten
13
+ orcid: "https://orcid.org/0000-0001-6041-3665"
14
+ - given-names: Jenna
15
+ family-names: Tomkinson
16
+ orcid: 'https://orcid.org/0000-0003-2676-5813'
17
+ - given-names: Michael
18
+ family-names: Lippincott
19
+ orcid: 'https://orcid.org/0000-0002-8637-1448'
20
+ - given-names: Gregory
21
+ family-names: Way
22
+ orcid: 'https://orcid.org/0000-0002-0503-9348'
23
+ repository-code: "https://github.com/wayscience/ome-arrow"
24
+ abstract: >-
25
+ Using OME specifications with Apache Arrow for fast, queryable, and language agnostic bioimage data.
26
+ keywords:
27
+ - python
28
+ license: BSD-3-Clause
29
+ references:
30
+ - authors:
31
+ - name: "ExampleHuman CellProfiler Data Team"
32
+ date-accessed: "2022-09-01"
33
+ title: ExampleHuman CellProfiler Data
34
+ type: data
35
+ repository-code: "https://github.com/CellProfiler/examples/tree/master/ExampleHuman"
36
+ url: "https://cellprofiler.org/examples"
37
+ scope: "ExampleHuman"
38
+ notes: >-
39
+ ExampleHuman CellProfiler data is used to help validate expected results.
40
+ identifiers:
41
+ - description: "README.md with Citation Information"
42
+ type: url
43
+ value: "https://github.com/CellProfiler/examples/blob/master/ExampleHuman/README.md"
44
+ - authors:
45
+ - name: "Open Microscopy Environment (OME) Team"
46
+ date-accessed: "2025-11-07"
47
+ title: OME-TIFF Sample Data
48
+ type: data
49
+ repository-code: "https://github.com/ome/ome-model"
50
+ url: "https://ome-model.readthedocs.io/en/stable/ome-tiff/data.html"
51
+ scope: "OME-TIFF Example Datasets"
52
+ notes: >-
53
+ The OME-TIFF sample datasets illustrate the structure and metadata conventions
54
+ used in the OME-TIFF format, including images for testing readers, writers,
55
+ and visualization tools.
56
+ identifiers:
57
+ - description: "OME Model Documentation — OME-TIFF Sample Data"
58
+ type: url
59
+ value: "https://ome-model.readthedocs.io/en/stable/ome-tiff/data.html"