forked from equinor/segyio
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
139 lines (121 loc) · 4.39 KB
/
Copy pathpyproject.toml
File metadata and controls
139 lines (121 loc) · 4.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
[build-system]
requires = [
"scikit-build-core",
]
build-backend = "scikit_build_core.build"
[project]
name = "segyio"
version = "1.9.13"
description = "Simple & fast IO for SEG-Y files"
authors = [
{ name = "Equinor ASA" },
]
urls.homepage = "https://github.com/equinor/segyio"
license = "LGPL-3.0-or-later"
requires-python = ">=3.9"
dependencies = ["numpy >= 1.10"]
readme = { text = """
=======
SEGY IO
=======
https://segyio.readthedocs.io
Introduction
------------
Segyio is a small LGPL licensed C library for easy interaction with SEG Y
formatted seismic data, with language bindings for Python and Matlab. Segyio is
an attempt to create an easy-to-use, embeddable, community-oriented library for
seismic applications. Features are added as they are needed; suggestions and
contributions of all kinds are very welcome.
Feature summary
---------------
* A low-level C interface with few assumptions; easy to bind to other
languages.
* Read and write binary and textual headers.
* Read and write traces, trace headers.
* Easy to use and native-feeling python interface with numpy integration.
Project goals
-------------
Segyio does necessarily attempt to be the end-all of SEG-Y interactions;
rather, we aim to lower the barrier to interacting with SEG-Y files for
embedding, new applications or free-standing programs.
Additionally, the aim is not to support the full standard or all exotic (but
correctly) formatted files out there. Some assumptions are made, such as:
* All traces in a file are assumed to be of the same sample size.
* It is assumed all lines have the same number of traces.
The writing functionality in Segyio is largely meant to *modify* or adapt
files. A file created from scratch is not necessarily a to-spec SEG-Y file, as
we only necessarily write the header fields segyio needs to make sense of the
geometry. It is still highly recommended that SEG-Y files are maintained and
written according to specification, but segyio does not mandate this.
""", content-type = "text/markdown" }
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Other Environment",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Software Development :: Libraries",
"Topic :: Utilities",
]
[tool.pytest.ini_options]
python_files = "test/*.py"
addopts = "--ignore=test/benchmarks.py --ignore=test/large.py --ignore=test/stream.py"
[tool.scikit-build]
# We can safely pass OSX_DEPLOYMENT_TARGET as it's ignored on
# everything not OS X. We depend on C++11, which makes our minimum
# supported OS X release 10.9
cmake.args = [ "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9" ]
[tool.cibuildwheel]
before-build = [
"""cmake \
-S . \
-B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_TESTING=OFF \
-DBUILD_PYTHON=OFF \
-DBUILD_BIN=OFF \
""",
"""cmake \
--build build \
--parallel \
--target install \
--config Release \
""",
]
test-requires = "pytest"
# Copy out test folder to make sure that tests are run against the wheel and
# not the source. The tests assume a relative path to the test-data directory, so
# copy that too. segyio's python test-suite doesn't follow common naming
# conventions for filenames. Hence pytest doesn't pick them up by default.
# If not for powershell on windows we could simply run 'pytest test/*.py'.
test-command = [ "cd python", "pytest test" ]
test-sources = [ "python/test", "python/pyproject.toml", "test-data" ]
[tool.cibuildwheel.macos]
before-build = [
"""sudo cmake \
-S . \
-B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_TESTING=OFF \
-DBUILD_PYTHON=OFF \
-DBUILD_BIN=OFF \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \
""",
"""sudo cmake \
--build build \
--parallel \
--target install \
--config Release \
""",
]