orchid-python-api 5.25.3__py3-none-any.whl → 5.25.4__py3-none-any.whl
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.
- orchid_python_api/examples/search_data_frames.py +1 -1
- {orchid_python_api-5.25.3.dist-info → orchid_python_api-5.25.4.dist-info}/METADATA +4 -3
- orchid_python_api-5.25.4.dist-info/RECORD +38 -0
- {orchid_python_api-5.25.3.dist-info → orchid_python_api-5.25.4.dist-info}/WHEEL +1 -1
- ReleaseNotes.md +0 -730
- copy_orchid_examples.py +0 -88
- copy_orchid_low_level_examples.py +0 -93
- copy_orchid_manual_examples.py +0 -93
- copy_orchid_tutorials.py +0 -88
- orchid/VERSION +0 -1
- orchid/__init__.py +0 -42
- orchid/__version__.py +0 -18
- orchid/base.py +0 -31
- orchid/base_time_series_adapter.py +0 -91
- orchid/configuration.py +0 -162
- orchid/convert.py +0 -44
- orchid/core.py +0 -149
- orchid/dom_project_object.py +0 -28
- orchid/dot_net.py +0 -68
- orchid/dot_net_disposable.py +0 -64
- orchid/dot_net_dom_access.py +0 -241
- orchid/measurement.py +0 -35
- orchid/native_data_frame_adapter.py +0 -247
- orchid/native_fiber_data.py +0 -73
- orchid/native_fiber_data_set_info.py +0 -28
- orchid/native_monitor_adapter.py +0 -67
- orchid/native_project_user_data_adapter.py +0 -137
- orchid/native_stage_adapter.py +0 -631
- orchid/native_stage_part_adapter.py +0 -50
- orchid/native_subsurface_point.py +0 -70
- orchid/native_time_series_adapter.py +0 -54
- orchid/native_trajectory_adapter.py +0 -246
- orchid/native_treatment_calculations.py +0 -158
- orchid/native_treatment_curve_adapter.py +0 -60
- orchid/native_well_adapter.py +0 -134
- orchid/net_date_time.py +0 -328
- orchid/net_enumerable.py +0 -72
- orchid/net_fracture_diagnostics_factory.py +0 -55
- orchid/net_quantity.py +0 -620
- orchid/net_stage_qc.py +0 -62
- orchid/physical_quantity.py +0 -37
- orchid/project.py +0 -182
- orchid/project_store.py +0 -269
- orchid/reference_origins.py +0 -34
- orchid/script_adapter_context.py +0 -81
- orchid/searchable_data_frames.py +0 -44
- orchid/searchable_project_objects.py +0 -190
- orchid/searchable_stage_parts.py +0 -73
- orchid/searchable_stages.py +0 -29
- orchid/unit_system.py +0 -173
- orchid/utils.py +0 -14
- orchid/validation.py +0 -52
- orchid/version.py +0 -37
- orchid_python_api-5.25.3.dist-info/LICENSE +0 -176
- orchid_python_api-5.25.3.dist-info/RECORD +0 -88
- {orchid_python_api-5.25.3.dist-info → orchid_python_api-5.25.4.dist-info}/entry_points.txt +0 -0
- /LICENSE → /orchid_python_api-5.25.4.dist-info/licenses/LICENSE +0 -0
copy_orchid_examples.py
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#! /usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# This file is part of Orchid and related technologies.
|
|
4
|
-
#
|
|
5
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
6
|
-
#
|
|
7
|
-
# LEGAL NOTICE:
|
|
8
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
9
|
-
# owned by KAPPA. Access to and use of this information is
|
|
10
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
11
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
12
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
13
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import argparse
|
|
18
|
-
import glob
|
|
19
|
-
import pathlib
|
|
20
|
-
import shutil
|
|
21
|
-
import site
|
|
22
|
-
import sys
|
|
23
|
-
from typing import Optional, Sequence
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def site_packages_path() -> pathlib.Path:
|
|
27
|
-
candidate_site_packages = [pn for pn in site.getsitepackages() if pn.find('site-packages') != -1]
|
|
28
|
-
assert len(candidate_site_packages) == 1
|
|
29
|
-
|
|
30
|
-
result = pathlib.Path(candidate_site_packages[0])
|
|
31
|
-
return result
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def copy_examples_to(target_dir: str, overwrite: bool) -> None:
|
|
35
|
-
"""
|
|
36
|
-
Copy the Orchid Python API examples into the specified, `target_dir`.
|
|
37
|
-
Args:
|
|
38
|
-
target_dir: The target for the examples.
|
|
39
|
-
overwrite: Flag: true if script will overwrite existing files with the same name in the target_dir.
|
|
40
|
-
"""
|
|
41
|
-
|
|
42
|
-
def example_candidates(filename_glob):
|
|
43
|
-
example_glob = str(site_packages_path().joinpath('orchid_python_api', 'examples', filename_glob))
|
|
44
|
-
return glob.glob(example_glob), example_glob
|
|
45
|
-
|
|
46
|
-
example_notebook_candidates, example_notebook_glob = example_candidates('*.ipynb')
|
|
47
|
-
if not example_notebook_candidates:
|
|
48
|
-
print(f'No example notebooks matching "{example_notebook_glob}"')
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
example_script_candidates, example_script_glob = example_candidates('*.py')
|
|
52
|
-
if not example_script_candidates:
|
|
53
|
-
print(f'No example scripts matching "{example_script_glob}"')
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
candidates = example_notebook_candidates + example_script_candidates
|
|
57
|
-
for src in candidates:
|
|
58
|
-
target_path = pathlib.Path(target_dir).joinpath(pathlib.Path(src).name)
|
|
59
|
-
duplicate_in_target = target_path.exists()
|
|
60
|
-
if duplicate_in_target and not overwrite:
|
|
61
|
-
print(f'Skipping "{src}". Already exists.')
|
|
62
|
-
else:
|
|
63
|
-
shutil.copy2(src, target_dir)
|
|
64
|
-
print(f'Copied "{src}" to "{target_dir}"')
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def main(cli_args: Optional[Sequence[str]] = None):
|
|
68
|
-
"""
|
|
69
|
-
Entry point for copy Orchid examples utility.
|
|
70
|
-
Args:
|
|
71
|
-
cli_args: The command line arguments.
|
|
72
|
-
"""
|
|
73
|
-
cli_args = cli_args if cli_args else sys.argv[1:]
|
|
74
|
-
|
|
75
|
-
parser = argparse.ArgumentParser(
|
|
76
|
-
description='Copy Orchid Python API examples from installed package to specified directory')
|
|
77
|
-
parser.add_argument('-t', '--target-dir', default='.',
|
|
78
|
-
help='Directory into which to copy the Orchid Python API examples '
|
|
79
|
-
'(default: current directory)')
|
|
80
|
-
parser.add_argument('-o', '--overwrite', action='store_true', default=False,
|
|
81
|
-
help='Overwrite existing files in target directory',)
|
|
82
|
-
|
|
83
|
-
args = parser.parse_args(cli_args)
|
|
84
|
-
copy_examples_to(args.target_dir, args.overwrite)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if __name__ == '__main__':
|
|
88
|
-
main(sys.argv[1:])
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
#! /usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# This file is part of Orchid and related technologies.
|
|
4
|
-
#
|
|
5
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
6
|
-
#
|
|
7
|
-
# LEGAL NOTICE:
|
|
8
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
9
|
-
# owned by KAPPA. Access to and use of this information is
|
|
10
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
11
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
12
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
13
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import argparse
|
|
18
|
-
import glob
|
|
19
|
-
import pathlib
|
|
20
|
-
import shutil
|
|
21
|
-
import site
|
|
22
|
-
import sys
|
|
23
|
-
from typing import Optional, Sequence
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def site_packages_path() -> pathlib.Path:
|
|
27
|
-
candidate_site_packages = [pn for pn in site.getsitepackages() if pn.find('site-packages') != -1]
|
|
28
|
-
assert len(candidate_site_packages) == 1
|
|
29
|
-
|
|
30
|
-
result = pathlib.Path(candidate_site_packages[0])
|
|
31
|
-
return result
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def copy_examples_to(target_dir: str, overwrite: bool) -> None:
|
|
35
|
-
"""
|
|
36
|
-
Copy the Orchid Python API low-level examples into `target_dir`.
|
|
37
|
-
|
|
38
|
-
Args:
|
|
39
|
-
target_dir: The target for the examples.
|
|
40
|
-
overwrite: Flag: true if script will overwrite existing files with the same name in the target_dir.
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
def example_candidates(filename_glob):
|
|
44
|
-
low_level_dirname = pathlib.Path('examples').joinpath('low_level')
|
|
45
|
-
example_glob = str(site_packages_path().joinpath('orchid_python_api',
|
|
46
|
-
low_level_dirname,
|
|
47
|
-
filename_glob))
|
|
48
|
-
return glob.glob(example_glob), example_glob
|
|
49
|
-
|
|
50
|
-
example_notebook_candidates, example_notebook_glob = example_candidates('*.ipynb')
|
|
51
|
-
if not example_notebook_candidates:
|
|
52
|
-
print(f'No example notebooks matching "{example_notebook_glob}"')
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
example_script_candidates, example_script_glob = example_candidates('*.py')
|
|
56
|
-
if not example_script_candidates:
|
|
57
|
-
print(f'No example scripts matching "{example_script_glob}"')
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
candidates = example_notebook_candidates + example_script_candidates
|
|
61
|
-
for src in candidates:
|
|
62
|
-
target_path = pathlib.Path(target_dir).joinpath(pathlib.Path(src).name)
|
|
63
|
-
duplicate_in_target = target_path.exists()
|
|
64
|
-
if duplicate_in_target and not overwrite:
|
|
65
|
-
print(f'Skipping "{src}". Already exists.')
|
|
66
|
-
else:
|
|
67
|
-
shutil.copy2(src, target_dir)
|
|
68
|
-
print(f'Copied "{src}" to "{target_dir}"')
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def main(cli_args: Optional[Sequence[str]] = None):
|
|
72
|
-
"""
|
|
73
|
-
Entry point for copy Orchid examples utility.
|
|
74
|
-
|
|
75
|
-
Args:
|
|
76
|
-
cli_args: The command line arguments.
|
|
77
|
-
"""
|
|
78
|
-
cli_args = cli_args if cli_args else sys.argv[1:]
|
|
79
|
-
|
|
80
|
-
parser = argparse.ArgumentParser(
|
|
81
|
-
description='Copy Orchid Python API low-level examples from installed package to specified directory')
|
|
82
|
-
parser.add_argument('-t', '--target-dir', default='.',
|
|
83
|
-
help='Directory into which to copy the Orchid Python API low-level examples '
|
|
84
|
-
'(default: current directory)')
|
|
85
|
-
parser.add_argument('-o', '--overwrite', action='store_true', default=False,
|
|
86
|
-
help='Overwrite existing files in target directory',)
|
|
87
|
-
|
|
88
|
-
args = parser.parse_args(cli_args)
|
|
89
|
-
copy_examples_to(args.target_dir, args.overwrite)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if __name__ == '__main__':
|
|
93
|
-
main(sys.argv[1:])
|
copy_orchid_manual_examples.py
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
#! /usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# This file is part of Orchid and related technologies.
|
|
4
|
-
#
|
|
5
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
6
|
-
#
|
|
7
|
-
# LEGAL NOTICE:
|
|
8
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
9
|
-
# owned by KAPPA. Access to and use of this information is
|
|
10
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
11
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
12
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
13
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import argparse
|
|
18
|
-
import glob
|
|
19
|
-
import pathlib
|
|
20
|
-
import shutil
|
|
21
|
-
import site
|
|
22
|
-
import sys
|
|
23
|
-
from typing import Optional, Sequence
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def site_packages_path() -> pathlib.Path:
|
|
27
|
-
candidate_site_packages = [pn for pn in site.getsitepackages() if pn.find('site-packages') != -1]
|
|
28
|
-
assert len(candidate_site_packages) == 1
|
|
29
|
-
|
|
30
|
-
result = pathlib.Path(candidate_site_packages[0])
|
|
31
|
-
return result
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def copy_examples_to(target_dir: str, overwrite: bool) -> None:
|
|
35
|
-
"""
|
|
36
|
-
Copy the Orchid Python API manual examples into `target_dir`.
|
|
37
|
-
|
|
38
|
-
Args:
|
|
39
|
-
target_dir: The target for the examples.
|
|
40
|
-
overwrite: Flag: true if script will overwrite existing files with the same name in the target_dir.
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
def example_candidates(filename_glob):
|
|
44
|
-
manual_dirname = pathlib.Path('examples').joinpath('manual')
|
|
45
|
-
example_glob = str(site_packages_path().joinpath('orchid_python_api',
|
|
46
|
-
manual_dirname,
|
|
47
|
-
filename_glob))
|
|
48
|
-
return glob.glob(example_glob), example_glob
|
|
49
|
-
|
|
50
|
-
example_notebook_candidates, example_notebook_glob = example_candidates('*.ipynb')
|
|
51
|
-
if not example_notebook_candidates:
|
|
52
|
-
print(f'No example notebooks matching "{example_notebook_glob}"')
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
example_script_candidates, example_script_glob = example_candidates('*.py')
|
|
56
|
-
if not example_script_candidates:
|
|
57
|
-
print(f'No example scripts matching "{example_script_glob}"')
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
candidates = example_notebook_candidates + example_script_candidates
|
|
61
|
-
for src in candidates:
|
|
62
|
-
target_path = pathlib.Path(target_dir).joinpath(pathlib.Path(src).name)
|
|
63
|
-
duplicate_in_target = target_path.exists()
|
|
64
|
-
if duplicate_in_target and not overwrite:
|
|
65
|
-
print(f'Skipping "{src}". Already exists.')
|
|
66
|
-
else:
|
|
67
|
-
shutil.copy2(src, target_dir)
|
|
68
|
-
print(f'Copied "{src}" to "{target_dir}"')
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def main(cli_args: Optional[Sequence[str]] = None):
|
|
72
|
-
"""
|
|
73
|
-
Entry point for copy Orchid examples utility.
|
|
74
|
-
|
|
75
|
-
Args:
|
|
76
|
-
cli_args: The command line arguments.
|
|
77
|
-
"""
|
|
78
|
-
cli_args = cli_args if cli_args else sys.argv[1:]
|
|
79
|
-
|
|
80
|
-
parser = argparse.ArgumentParser(
|
|
81
|
-
description='Copy Orchid Python API manual examples from installed package to specified directory')
|
|
82
|
-
parser.add_argument('-t', '--target-dir', default='.',
|
|
83
|
-
help='Directory into which to copy the Orchid Python API manual examples '
|
|
84
|
-
'(default: current directory)')
|
|
85
|
-
parser.add_argument('-o', '--overwrite', action='store_true', default=False,
|
|
86
|
-
help='Overwrite existing files in target directory',)
|
|
87
|
-
|
|
88
|
-
args = parser.parse_args(cli_args)
|
|
89
|
-
copy_examples_to(args.target_dir, args.overwrite)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if __name__ == '__main__':
|
|
93
|
-
main(sys.argv[1:])
|
copy_orchid_tutorials.py
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#! /usr/bin/env python
|
|
2
|
-
#
|
|
3
|
-
# This file is part of Orchid and related technologies.
|
|
4
|
-
#
|
|
5
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
6
|
-
#
|
|
7
|
-
# LEGAL NOTICE:
|
|
8
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
9
|
-
# owned by KAPPA. Access to and use of this information is
|
|
10
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
11
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
12
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
13
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import argparse
|
|
18
|
-
import glob
|
|
19
|
-
import pathlib
|
|
20
|
-
import shutil
|
|
21
|
-
import site
|
|
22
|
-
import sys
|
|
23
|
-
from typing import Optional, Sequence
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def site_packages_path() -> pathlib.Path:
|
|
27
|
-
candidate_site_packages = [pn for pn in site.getsitepackages() if pn.find('site-packages') != -1]
|
|
28
|
-
assert len(candidate_site_packages) == 1
|
|
29
|
-
|
|
30
|
-
result = pathlib.Path(candidate_site_packages[0])
|
|
31
|
-
return result
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def copy_tutorials_to(target_dir: str, overwrite: bool) -> None:
|
|
35
|
-
"""
|
|
36
|
-
Copy the Orchid Python API tutorials into the specified, `target_dir`.
|
|
37
|
-
Args:
|
|
38
|
-
target_dir: The target for the examples.
|
|
39
|
-
overwrite: Flag: true if script will overwrite existing files with the same name in the target_dir.
|
|
40
|
-
"""
|
|
41
|
-
|
|
42
|
-
def tutorial_candidates(filename_glob):
|
|
43
|
-
tutorial_glob = str(site_packages_path().joinpath('orchid_python_api', 'tutorials', filename_glob))
|
|
44
|
-
return glob.glob(tutorial_glob), tutorial_glob
|
|
45
|
-
|
|
46
|
-
tutorial_notebook_candidates, tutorial_notebook_glob = tutorial_candidates('*.ipynb')
|
|
47
|
-
if not tutorial_notebook_candidates:
|
|
48
|
-
print(f'No tutorial notebooks matching "{tutorial_notebook_glob}"')
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
tutorial_script_candidates, tutorial_script_glob = tutorial_candidates('*.py')
|
|
52
|
-
if not tutorial_script_candidates:
|
|
53
|
-
print(f'No tutorial scripts matching "{tutorial_script_glob}"')
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
candidates = tutorial_notebook_candidates + tutorial_script_candidates
|
|
57
|
-
for src in candidates:
|
|
58
|
-
target_path = pathlib.Path(target_dir).joinpath(pathlib.Path(src).name)
|
|
59
|
-
duplicate_in_target = target_path.exists()
|
|
60
|
-
if duplicate_in_target and not overwrite:
|
|
61
|
-
print(f'Skipping "{src}". Already exists.')
|
|
62
|
-
else:
|
|
63
|
-
shutil.copy2(src, target_dir)
|
|
64
|
-
print(f'Copied "{src}" to "{target_dir}"')
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def main(cli_args: Optional[Sequence[str]] = None):
|
|
68
|
-
"""
|
|
69
|
-
Entry point for copy Orchid tutorials utility.
|
|
70
|
-
Args:
|
|
71
|
-
cli_args: The command line arguments.
|
|
72
|
-
"""
|
|
73
|
-
cli_args = cli_args if cli_args else sys.argv[1:]
|
|
74
|
-
|
|
75
|
-
parser = argparse.ArgumentParser(
|
|
76
|
-
description='Copy Orchid Python API tutorial from installed package to specified directory')
|
|
77
|
-
parser.add_argument('-t', '--target-dir', default='.',
|
|
78
|
-
help='Directory into which to copy the Orchid Python API tutorials '
|
|
79
|
-
'(default: current directory)')
|
|
80
|
-
parser.add_argument('-o', '--overwrite', action='store_true', default=False,
|
|
81
|
-
help='Overwrite existing files in target directory',)
|
|
82
|
-
|
|
83
|
-
args = parser.parse_args(cli_args)
|
|
84
|
-
copy_tutorials_to(args.target_dir, args.overwrite)
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if __name__ == '__main__':
|
|
88
|
-
main(sys.argv[1:])
|
orchid/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5.25.3
|
orchid/__init__.py
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2017-2025 KAPPA
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
#
|
|
15
|
-
# This file is part of Orchid and related technologies.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# Load the appropriate runtime **before** executing `import clr`
|
|
20
|
-
import pythonnet
|
|
21
|
-
pythonnet.load('coreclr')
|
|
22
|
-
|
|
23
|
-
from .dot_net import prepare_imports
|
|
24
|
-
prepare_imports()
|
|
25
|
-
|
|
26
|
-
# High-level API
|
|
27
|
-
from .core import load_project, save_project, optimized_but_possibly_unsafe_save
|
|
28
|
-
|
|
29
|
-
# Helpful constants
|
|
30
|
-
from .native_treatment_curve_adapter import TreatmentCurveTypes
|
|
31
|
-
from .native_time_series_adapter import TimeSeriesCurveTypes
|
|
32
|
-
from .net_date_time import UTC
|
|
33
|
-
|
|
34
|
-
# Helpful functions
|
|
35
|
-
from .convert import to_unit
|
|
36
|
-
from .measurement import registry as unit_registry
|
|
37
|
-
from .native_treatment_calculations import (median_treating_pressure, pumped_fluid_volume, total_proppant_mass)
|
|
38
|
-
from .reference_origins import WellReferenceFrameXy
|
|
39
|
-
from .unit_system import abbreviation, make_measurement
|
|
40
|
-
|
|
41
|
-
# Only for training data
|
|
42
|
-
from .configuration import training_data_path
|
orchid/__version__.py
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2017-2025 KAPPA
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
#
|
|
15
|
-
# This file is part of Orchid and related technologies.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
__version__ = '2020.4.0'
|
orchid/base.py
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This file is part of Orchid and related technologies.
|
|
3
|
-
#
|
|
4
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
5
|
-
#
|
|
6
|
-
# LEGAL NOTICE:
|
|
7
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
8
|
-
# owned by KAPPA. Access to and use of this information is
|
|
9
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
10
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
11
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
12
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
13
|
-
#
|
|
14
|
-
from toolz import curried as toolz
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def constantly(x):
|
|
18
|
-
"""
|
|
19
|
-
Creates a function that always returns the value, `x`, independent of **all** arguments passed to it..
|
|
20
|
-
Args:
|
|
21
|
-
x: The value to return
|
|
22
|
-
|
|
23
|
-
Returns:
|
|
24
|
-
Returns a function takes any arguments yet always returns `x`.
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
# noinspection PyUnusedLocal
|
|
28
|
-
def make_constantly(*args, **kwargs):
|
|
29
|
-
return toolz.identity(x)
|
|
30
|
-
|
|
31
|
-
return make_constantly
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This file is part of Orchid and related technologies.
|
|
3
|
-
#
|
|
4
|
-
# Copyright (c) 2017-2025 KAPPA. All Rights Reserved.
|
|
5
|
-
#
|
|
6
|
-
# LEGAL NOTICE:
|
|
7
|
-
# Orchid contains trade secrets and otherwise confidential information
|
|
8
|
-
# owned by KAPPA. Access to and use of this information is
|
|
9
|
-
# strictly limited and controlled by the Company. This file may not be copied,
|
|
10
|
-
# distributed, or otherwise disclosed outside of the Company's facilities
|
|
11
|
-
# except under appropriate precautions to maintain the confidentiality hereof,
|
|
12
|
-
# and may not be used in any way not expressly authorized by the Company.
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
from abc import ABCMeta, abstractmethod
|
|
17
|
-
from typing import Callable, Union
|
|
18
|
-
|
|
19
|
-
import numpy as np
|
|
20
|
-
import pandas as pd
|
|
21
|
-
|
|
22
|
-
from orchid import (
|
|
23
|
-
dom_project_object as dpo,
|
|
24
|
-
dot_net_dom_access as dna,
|
|
25
|
-
project_store as loader,
|
|
26
|
-
unit_system as units,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
# noinspection PyUnresolvedReferences
|
|
30
|
-
from Orchid.FractureDiagnostics.SDKFacade import ScriptAdapter
|
|
31
|
-
# noinspection PyUnresolvedReferences
|
|
32
|
-
from Orchid.FractureDiagnostics.TimeSeries import IQuantityTimeSeries
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class BaseTimeSeriesAdapter(dpo.DomProjectObject, metaclass=ABCMeta):
|
|
36
|
-
def __init__(self, adaptee: IQuantityTimeSeries, net_project_callable: Callable):
|
|
37
|
-
"""
|
|
38
|
-
Construct an instance that adapts a .NET `IStageSampledQuantityTimeSeries` instance.
|
|
39
|
-
|
|
40
|
-
Args:
|
|
41
|
-
adaptee: The .NET stage time series to be adapted.
|
|
42
|
-
"""
|
|
43
|
-
super().__init__(adaptee, net_project_callable)
|
|
44
|
-
|
|
45
|
-
sampled_quantity_name = dna.dom_property('sampled_quantity_name',
|
|
46
|
-
'Return the sampled quantity name for this curve.')
|
|
47
|
-
|
|
48
|
-
@abstractmethod
|
|
49
|
-
def quantity_name_unit_map(self, project_units):
|
|
50
|
-
"""
|
|
51
|
-
Return a map (dictionary) between quantity names and units (from `unit_system`) of the data_points.
|
|
52
|
-
|
|
53
|
-
This method plays the role of "Primitive Operation" in the *Template Method* design pattern. In this
|
|
54
|
-
role, the "Template Method" defines an algorithm and delegates some steps of the algorithm to derived
|
|
55
|
-
classes through invocation of "Primitive Operations".
|
|
56
|
-
|
|
57
|
-
Args:
|
|
58
|
-
project_units: The unit system of the project.
|
|
59
|
-
"""
|
|
60
|
-
pass
|
|
61
|
-
|
|
62
|
-
def sampled_quantity_unit(self) -> Union[units.UsOilfield, units.Metric]:
|
|
63
|
-
"""
|
|
64
|
-
Return the measurement unit of the data_points in this curve.
|
|
65
|
-
|
|
66
|
-
This method plays the role of "Template Method" in the *Template Method* design pattern. In this role
|
|
67
|
-
it specifies an algorithm to calculate the units of the sampled quantity of the curve delegating some
|
|
68
|
-
algorithm steps to derived classes by invoking the "Primitive Operation-", `quantity_name_unit_map()`
|
|
69
|
-
and `get_net_project_units()`.
|
|
70
|
-
|
|
71
|
-
Returns:
|
|
72
|
-
A `UnitSystem` member containing the unit for the sample in this curve.
|
|
73
|
-
"""
|
|
74
|
-
quantity_name_unit_map = self.quantity_name_unit_map(self.expect_project_units)
|
|
75
|
-
return quantity_name_unit_map[self.sampled_quantity_name]
|
|
76
|
-
|
|
77
|
-
def data_points(self) -> pd.Series:
|
|
78
|
-
"""
|
|
79
|
-
Return the time series for this curve.
|
|
80
|
-
|
|
81
|
-
Returns
|
|
82
|
-
The `pandas` time `Series` for this curve.
|
|
83
|
-
"""
|
|
84
|
-
python_time_series_arrays = loader.as_python_time_series_arrays(self.dom_object)
|
|
85
|
-
|
|
86
|
-
result = pd.Series(data=np.fromiter(python_time_series_arrays.SampleMagnitudes, dtype='float'),
|
|
87
|
-
index=pd.DatetimeIndex(np.fromiter(python_time_series_arrays.UnixTimeStampsInSeconds,
|
|
88
|
-
dtype='datetime64[s]'), tz='UTC'),
|
|
89
|
-
name=self.name)
|
|
90
|
-
|
|
91
|
-
return result
|