ararpy 0.0.1a1__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.
ararpy/smp/style.py ADDED
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: UTF-8 -*-
3
+ """
4
+ # ==========================================
5
+ # Copyright 2023 Yang
6
+ # ararpy - smp - style
7
+ # ==========================================
8
+ #
9
+ #
10
+ #
11
+ """
12
+
13
+ import traceback
14
+ import numpy as np
15
+ from .. import calc
16
+ from . import (sample as samples, basic, initial, plots, )
17
+
18
+ Sample = samples.Sample
19
+ Info = samples.Info
20
+ Table = samples.Table
21
+ Plot = samples.Plot
22
+
23
+ TABLEHEADER = lambda index: [
24
+ '',
25
+ samples.SAMPLE_INTERCEPT_HEADERS, samples.BLANK_INTERCEPT_HEADERS,
26
+ samples.CORRECTED_HEADERS, samples.DEGAS_HEADERS, samples.PUBLISH_TABLE_HEADERS,
27
+ samples.SPECTRUM_TABLE_HEADERS, samples.ISOCHRON_TABLE_HEADERS,
28
+ samples.TOTAL_PARAMS_HEADERS
29
+ ][index]
30
+
31
+
32
+ # =======================
33
+ # Reset plot style
34
+ # =======================
35
+ def set_plot_style(smp: Sample):
36
+ """
37
+
38
+ Parameters
39
+ ----------
40
+ smp
41
+
42
+ Returns
43
+ -------
44
+
45
+ """
46
+ # Reset styles
47
+ initial.initial_plot_styles(smp, except_attrs=['data'])
48
+ # Auto scale
49
+ reset_plot_scale(smp)
50
+ # Reset isochron data
51
+ plots.reset_isochron_line_data(smp)
52
+ # Auto position of text
53
+ reset_text_position(smp)
54
+ # Set title, which are deleted in initializing
55
+ suffix = f"{smp.Info.sample.name} {smp.Info.sample.material}"
56
+ for figure_id, figure in basic.get_components(smp).items():
57
+ if isinstance(figure, Plot):
58
+ if not hasattr(figure, 'title'):
59
+ setattr(figure, 'title', Plot.Text())
60
+ setattr(getattr(figure, 'title'), 'text', f"{suffix} {getattr(figure, 'name', '')}")
61
+
62
+
63
+ def reset_plot_scale(smp: Sample, only_figure: str = None):
64
+ """
65
+ Reset x- and y-axes scale
66
+ Parameters
67
+ ----------
68
+ smp : sample instance
69
+ only_figure
70
+
71
+ Returns
72
+ -------
73
+ tuple of two tuples, (xscale, yscale)
74
+ """
75
+ for k, v in basic.get_components(smp).items():
76
+ if not isinstance(v, Plot):
77
+ continue
78
+ if only_figure is not None and k != only_figure:
79
+ continue
80
+ if k == 'figure_1':
81
+ try:
82
+ # data = calc.arr.transpose(
83
+ # v.data + v.data + v.set1.data + v.set1.data + v.set2.data + v.set2.data)
84
+ k0 = calc.arr.transpose(v.data)
85
+ k1 = calc.arr.transpose(v.set1.data) if len(v.set1.data) != 0 else [[]] * 3
86
+ k2 = calc.arr.transpose(v.set2.data) if len(v.set2.data) != 0 else [[]] * 3
87
+ data = np.concatenate([k0, k1, k2], axis=1)
88
+ ylist = np.concatenate([data[1], data[2]])
89
+ yscale = calc.plot.get_axis_scale(ylist, min_interval=5, extra_count=1)
90
+ xscale = [0, 100, 20]
91
+ except (Exception, BaseException):
92
+ print(traceback.format_exc())
93
+ continue
94
+ elif k == 'figure_3':
95
+ try:
96
+ xlist = v.data[0]
97
+ xscale = calc.plot.get_axis_scale(xlist)
98
+ yscale = [0, 0.004, 4, 0.001]
99
+ except (Exception, BaseException):
100
+ # print(traceback.format_exc())
101
+ continue
102
+ elif k == 'figure_7':
103
+ try:
104
+ xlist, ylist, zlist = v.data[0], v.data[2], v.data[4]
105
+ xscale = calc.plot.get_axis_scale(xlist)
106
+ yscale = calc.plot.get_axis_scale(ylist)
107
+ zscale = calc.plot.get_axis_scale(zlist)
108
+ setattr(getattr(v, 'zaxis'), 'min', zscale[0])
109
+ setattr(getattr(v, 'zaxis'), 'max', zscale[1])
110
+ setattr(getattr(v, 'zaxis'), 'split_number', zscale[2])
111
+ except (Exception, BaseException):
112
+ # print(traceback.format_exc())
113
+ continue
114
+ elif k == 'figure_9':
115
+ try:
116
+ xlist = v.set3.data[0] + [v.set3.data[0][i] - v.set3.data[1][i] for i in
117
+ range(len(v.set3.data[0]))] + [
118
+ v.set3.data[0][i] + v.set3.data[1][i] for i in range(len(v.set3.data[0]))]
119
+ ylist = v.set1.data[1]
120
+ xscale = calc.plot.get_axis_scale(xlist)
121
+ yscale = calc.plot.get_axis_scale(ylist)
122
+ except (Exception, BaseException):
123
+ print(traceback.format_exc())
124
+ continue
125
+ else:
126
+ try:
127
+ xlist = v.data[0]
128
+ ylist = v.data[2]
129
+ xscale = calc.plot.get_axis_scale(xlist)
130
+ yscale = calc.plot.get_axis_scale(ylist)
131
+ except (Exception, BaseException):
132
+ # print(traceback.format_exc())
133
+ continue
134
+ setattr(getattr(v, 'xaxis', Plot.Axis()), 'min', xscale[0])
135
+ setattr(getattr(v, 'xaxis', Plot.Axis()), 'max', xscale[1])
136
+ setattr(getattr(v, 'xaxis', Plot.Axis()), 'split_number', xscale[2])
137
+ setattr(getattr(v, 'yaxis', Plot.Axis()), 'min', yscale[0])
138
+ setattr(getattr(v, 'yaxis', Plot.Axis()), 'max', yscale[1])
139
+ setattr(getattr(v, 'yaxis', Plot.Axis()), 'split_number', yscale[2])
140
+
141
+ if only_figure is not None and k == only_figure:
142
+ return xscale, yscale
143
+
144
+
145
+ def reset_text_position(smp: Sample, only_figure: str = None):
146
+ """
147
+ Reset text position to default, if only figure is defined, only this figure will be reset.
148
+ Parameters
149
+ ----------
150
+ smp
151
+ only_figure
152
+
153
+ Returns
154
+ -------
155
+ None
156
+ """
157
+ for figure_id in list(samples.DEFAULT_PLOT_STYLES.keys()):
158
+ if only_figure is not None and figure_id != only_figure:
159
+ continue
160
+ figure = basic.get_component_byid(smp, figure_id)
161
+ text_1 = basic.get_plot_set(figure, 'Text for Set 1')
162
+ if text_1 is not None:
163
+ setattr(text_1, 'pos', [20, 40])
164
+ text_2 = basic.get_plot_set(figure, 'Text for Set 2')
165
+ if text_2 is not None:
166
+ setattr(text_2, 'pos', [70, 40])
167
+
168
+
169
+ # =======================
170
+ # Reset plot style
171
+ # =======================
172
+ def set_table_style(sample: Sample):
173
+ """
174
+
175
+ Parameters
176
+ ----------
177
+ sample
178
+
179
+ Returns
180
+ -------
181
+
182
+ """
183
+ for key, comp in basic.get_components(sample).items():
184
+ if isinstance(comp, Table):
185
+ comp.header = TABLEHEADER(index=int(comp.id))
186
+ comp.colcount = len(comp.header)
187
+ comp.coltypes = [{'type': 'numeric'}] * (comp.colcount)
188
+ textindexs = getattr(comp, 'textindexs', [0]) if hasattr(comp, 'textindexs') else [0]
189
+ for i in textindexs:
190
+ comp.coltypes[i] = {'type': 'text'}
191
+
ararpy/smp/table.py ADDED
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: UTF-8 -*-
3
+ """
4
+ # ==========================================
5
+ # Copyright 2023 Yang
6
+ # ararpy - smp - table
7
+ # ==========================================
8
+ #
9
+ #
10
+ #
11
+ """
12
+ from .. import calc
13
+ from . import (sample as samples, basic)
14
+
15
+ Sample = samples.Sample
16
+ Table = samples.Table
17
+
18
+
19
+ # Table functions
20
+ def update_table_data(smp: Sample, only_table: str = None):
21
+ """
22
+ Update table data
23
+ Parameters
24
+ ----------
25
+ smp
26
+ only_table
27
+
28
+ Returns
29
+ -------
30
+
31
+ """
32
+ for key, comp in basic.get_components(smp).items():
33
+ if not isinstance(comp, Table):
34
+ continue
35
+ if only_table is not None and key != only_table:
36
+ continue
37
+ if key == '1':
38
+ data = calc.arr.merge(
39
+ smp.SequenceName, smp.SequenceValue, *smp.SampleIntercept)
40
+ elif key == '2':
41
+ data = calc.arr.merge(
42
+ smp.SequenceName, smp.SequenceValue, *smp.BlankIntercept)
43
+ elif key == '3':
44
+ data = calc.arr.merge(
45
+ smp.SequenceName, smp.SequenceValue, *smp.CorrectedValues)
46
+ elif key == '4':
47
+ data = calc.arr.merge(
48
+ smp.SequenceName, smp.SequenceValue, *smp.DegasValues)
49
+ elif key == '5':
50
+ data = calc.arr.merge(
51
+ smp.SequenceName, smp.SequenceValue, *smp.PublishValues)
52
+ elif key == '6':
53
+ data = calc.arr.merge(
54
+ smp.SequenceName, smp.SequenceValue, *smp.ApparentAgeValues)
55
+ elif key == '7':
56
+ data = calc.arr.merge(
57
+ smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.IsochronValues)
58
+ elif key == '8':
59
+ data = calc.arr.merge(
60
+ smp.SequenceName, smp.SequenceValue, *smp.TotalParam)
61
+ else:
62
+ data = [['']]
63
+ # calc.arr.replace(data, pd.isnull, None)
64
+ setattr(comp, 'data', calc.arr.transpose(data))
65
+
66
+
67
+ def update_handsontable(smp: Sample, data: list, id: str):
68
+ """
69
+ Parameters
70
+ ----------
71
+ smp : sample instance
72
+ data : list
73
+ id : str, table id
74
+
75
+ Returns
76
+ -------
77
+
78
+ """
79
+
80
+ def _normalize_data(a, cols, start_col=0):
81
+ if len(a) >= cols:
82
+ return a[start_col:cols]
83
+ else:
84
+ return a[start_col:] + [[''] * len(a[0])] * (cols - len(a))
85
+
86
+ def _strToBool(cols):
87
+ bools_dict = {
88
+ 'true': True, 'false': False, '1': True, '0': False, 'none': False,
89
+ }
90
+ return [bools_dict.get(str(col).lower(), False) for col in cols]
91
+
92
+ smp.SequenceName = data[0]
93
+ smp.SequenceValue = data[1]
94
+ if id == '1': # 样品值
95
+ data = _normalize_data(data, 12, 2)
96
+ smp.SampleIntercept = data
97
+ elif id == '2': # 本底值
98
+ data = _normalize_data(data, 12, 2)
99
+ smp.BlankIntercept = data
100
+ elif id == '3': # 校正值
101
+ data = _normalize_data(data, 12, 2)
102
+ smp.CorrectedValues = data
103
+ elif id == '4': #
104
+ data = _normalize_data(data, 34, 2)
105
+ smp.DegasValues = data
106
+ elif id == '5': # 发行表
107
+ data = _normalize_data(data, 13, 2)
108
+ smp.PublishValues = data
109
+ elif id == '6': # 年龄谱
110
+ data = _normalize_data(data, 10, 2)
111
+ smp.ApparentAgeValues = data
112
+ elif id == '7': # 等时线
113
+ smp.IsochronMark = data[2]
114
+ data = _normalize_data(data, 42, 3)
115
+ smp.IsochronValues = data
116
+ smp.SelectedSequence1 = [
117
+ i for i in range(len(smp.IsochronMark)) if smp.IsochronMark[i] == 1]
118
+ smp.SelectedSequence2 = [
119
+ i for i in range(len(smp.IsochronMark)) if smp.IsochronMark[i] == 2]
120
+ smp.UnselectedSequence = [
121
+ i for i in range(len(smp.IsochronMark)) if
122
+ i not in smp.SelectedSequence1 + smp.SelectedSequence2]
123
+ elif id == '8': # 总参数
124
+ data = _normalize_data(data, 125, 2)
125
+ data[103: 115] = [_strToBool(i) for i in data[103: 115]]
126
+ smp.TotalParam = data
127
+ else:
128
+ raise ValueError(f"{id = }, The table id is not supported.")
129
+ update_table_data(smp, only_table=id) # Update data of tables after changes of a table
130
+
131
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Yang Wu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,269 @@
1
+ Metadata-Version: 2.1
2
+ Name: ararpy
3
+ Version: 0.0.1a1
4
+ Summary: A project for Ar-Ar geochronology
5
+ Home-page: https://github.com/wuyangchn/ararpy.git
6
+ Author: Yang Wu
7
+ Author-email: wuycug@hotmail.com
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.5
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+
16
+ # ArArPy
17
+
18
+ ArArPy is a python package for the reduction of <sup>40</sup>Ar/<sup>39</sup>Ar
19
+ geochronologic data. The package includes all data processing steps, including
20
+ reading data from local files, blank correction, decay correction, interference
21
+ reactions correction, age calculation, isochron regression, etc. The software is
22
+ written in Python language combined with some open source packages, such as numpy,
23
+ pandas, os, scipy, pickle, xlrd, xlsxwriter, and json.
24
+
25
+ ## Installing from PyPI
26
+ ArArPy can be installed via pip from PyPI.
27
+
28
+ pip install pandas
29
+
30
+ ## Testing
31
+ #### 1. **Running the test function from a Python terminal**
32
+
33
+ >>> import ararpy as ap
34
+ >>> ap.test()
35
+ Running: ararpy.test()
36
+ ============= Open an example .arr file =============
37
+ file_path = 'your_dir\\examples\\22WHA0433.arr'
38
+ sample = from_arr(file_path=file_path)
39
+ sample.name() = '22WHA0433 -PFI'
40
+ sample.help = 'builtin methods:\n __class__\t__delattr__\t__dir__\t__eq__\t__format__\t__ge__\t__getattribute__\t__gt__\t__hash__\t__init__\t__init_subclass__\t__le__\t__lt__\t__ne__\t__new__\t__reduce__\t__reduce_ex__\t__repr__\t__setattr__\t__sizeof__\t__str__\t__subclasshook__\ndunder-excluded methods:\n apparent_ages\tblank\tcalc_ratio\tcorr_atm\tcorr_blank\tcorr_ca\tcorr_cl\tcorr_decay\tcorr_k\tcorr_massdiscr\tcorr_r\tdoi\tinitial\tisochron\tlaboratory\tname\tparameters\tpublish\trecalculation\tresearcher\tresults\tsample\tsequence\tset_selection\tunknown\tupdate_table\n'
41
+ sample.parameters() = <ararpy.ArArData object at 0x0000027F7FBEC9D0>
42
+ sample.parameters().to_df() =
43
+ air sAir 2 3 4 5 ... 117 118 119 120 121 122
44
+ 0 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
45
+ 1 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
46
+ 2 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
47
+ 3 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
48
+ 4 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
49
+ ... ... ... ... ... ... ... ... ... ... ... ... ... ...
50
+ 22 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
51
+ 23 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
52
+ 24 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
53
+ 25 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
54
+ 26 298.56 0.0 0.018 0.0063 0.1885 0.0 ... 0.31 298.56 0.31 1 1 1
55
+
56
+ #### 2. **Example 1: create an empty sample**
57
+
58
+ >>> import ararpy as ap
59
+ >>> sample = ap.from_empty() # create new sample instance
60
+ >>> print(sample.show_data())
61
+ # Sample Name:
62
+ #
63
+ # Doi:
64
+ # 9a43b5c1a99747ee8608676ac31814da # uuid
65
+ # Corrected Values:
66
+ # Empty DataFrame
67
+ # Columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
68
+ # Index: []
69
+ # Parameters:
70
+ # Empty DataFrame
71
+ # Columns: [0, 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,
72
+ # 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,
73
+ # 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,
74
+ # 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, ...]
75
+ # Index: []
76
+ #
77
+ # [0 rows x 123 columns]
78
+ # Isochron Values:
79
+ # Empty DataFrame
80
+ # Columns: [0, 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,
81
+ # 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46]
82
+ # Index: []
83
+ # Apparent Ages:
84
+ # Empty DataFrame
85
+ # Columns: [0, 1, 2, 3, 4, 5, 6, 7]
86
+ # Index: []
87
+ # Publish Table:
88
+ # Empty DataFrame
89
+ # Columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
90
+ # Index: []
91
+
92
+ #### 3. **Example 2: change data point selection and recalculate**
93
+
94
+ >>> import ararpy as ap
95
+ >>> example_dir = os.path.join(os.getcwd(), r'examples')
96
+ >>> file_path = os.path.join(example_dir, r'22WHA0433.arr')
97
+ >>> sample = ap.from_arr(file_path)
98
+ # normal isochron age
99
+ >>> print(f"{sample.results().isochron.inverse.set1.age = }")
100
+ # sample.results().isochron.inverse.set1.age = 163.10336210925516
101
+ # check current data point selection
102
+ >>> print(f"{sample.sequence().mark.value}")
103
+ # [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
104
+ >>> print(f"{sample.sequence().mark.set1.index}")
105
+ # [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
106
+
107
+ # change data point selection
108
+ >>> sample.set_selection(10, 1)
109
+ # check new data point selection
110
+ >>> print(f"{sample.sequence().mark.set1.index}")
111
+ # [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
112
+
113
+ # recalculate
114
+ >>> sample.recalculate(re_plot=True)
115
+ # check new results
116
+ >>> print(f"{sample.results().isochron.inverse.set1.age = }")
117
+ # sample.results().isochron.inverse.set1.age = 164.57644271385772
118
+
119
+ ## CLASSES
120
+
121
+ Info
122
+ Plot
123
+ Sample
124
+ Table
125
+
126
+ class Info(builtins.object)
127
+ | Info(id='', name='', type='Info', **kwargs)
128
+ |
129
+ | Methods defined here:
130
+ |
131
+ | __init__(self, id='', name='', type='Info', **kwargs)
132
+ | Initialize self. See help(type(self)) for accurate signature.
133
+ |
134
+ | ----------------------------------------------------------------------
135
+ | Data descriptors defined here:
136
+ |
137
+ | __dict__
138
+ | dictionary for instance variables (if defined)
139
+ |
140
+ | __weakref__
141
+ | list of weak references to the object (if defined)
142
+
143
+ class Plot(builtins.object)
144
+ | Plot(id='', type='', name='', data=None, info=None, **kwargs)
145
+ |
146
+ | Methods defined here:
147
+ |
148
+ | __init__(self, id='', type='', name='', data=None, info=None, **kwargs)
149
+ | Initialize self. See help(type(self)) for accurate signature.
150
+ |
151
+ | ----------------------------------------------------------------------
152
+ | Data descriptors defined here:
153
+ |
154
+ | __dict__
155
+ | dictionary for instance variables (if defined)
156
+ |
157
+ | __weakref__
158
+ | list of weak references to the object (if defined)
159
+ |
160
+ | ----------------------------------------------------------------------
161
+ | Data and other attributes defined here:
162
+ |
163
+ | Axis = <class 'sample.Plot.Axis'>
164
+ |
165
+ | BasicAttr = <class 'sample.Plot.BasicAttr'>
166
+ |
167
+ | Label = <class 'sample.Plot.Label'>
168
+ |
169
+ | Set = <class 'sample.Plot.Set'>
170
+ |
171
+ | Text = <class 'sample.Plot.Text'>
172
+
173
+ class Sample(builtins.object)
174
+ | Sample(**kwargs)
175
+ |
176
+ | Methods defined here:
177
+ |
178
+ | __init__(self, **kwargs)
179
+ | Initialize self. See help(type(self)) for accurate signature.
180
+ |
181
+ | apparent_ages(self)
182
+ |
183
+ | blank(self)
184
+ |
185
+ | calc_ratio(self)
186
+ |
187
+ | corr_atm(self)
188
+ |
189
+ | corr_blank(self)
190
+ |
191
+ | corr_ca(self)
192
+ |
193
+ | corr_cl(self)
194
+ |
195
+ | corr_decay(self)
196
+ |
197
+ | corr_k(self)
198
+ |
199
+ | corr_massdiscr(self)
200
+ |
201
+ | corr_r(self)
202
+ |
203
+ | corrected(self)
204
+ |
205
+ | doi(self)
206
+ |
207
+ | degas(self)
208
+ |
209
+ | initial(self)
210
+ |
211
+ | isochron(self)
212
+ |
213
+ | laboratory(self)
214
+ |
215
+ | name(self)
216
+ |
217
+ | parameters(self)
218
+ |
219
+ | publish(self)
220
+ |
221
+ | recalculation(self)
222
+ |
223
+ | researcher(self)
224
+ |
225
+ | results(self)
226
+ |
227
+ | sample(self)
228
+ |
229
+ | sequence(self)
230
+ |
231
+ | set_selection(self)
232
+ |
233
+ | show_data(self)
234
+ |
235
+ | unknown(self)
236
+ |
237
+ | update_table(self)
238
+ |
239
+ | ----------------------------------------------------------------------
240
+ | Readonly properties defined here:
241
+ |
242
+ | version
243
+ |
244
+ | ----------------------------------------------------------------------
245
+ | Data descriptors defined here:
246
+ |
247
+ | __dict__
248
+ | dictionary for instance variables (if defined)
249
+ |
250
+ | __weakref__
251
+ | list of weak references to the object (if defined)
252
+
253
+ class Table(builtins.object)
254
+ | Table(id='', name='Table', colcount=None, rowcount=None, header=None, data=None, coltypes=None, textindexs=None, numericindexs=None, **kwargs)
255
+ |
256
+ | Methods defined here:
257
+ |
258
+ | __init__(self, id='', name='Table', colcount=None, rowcount=None, header=None, data=None, coltypes=None, textindexs=None, numericindexs=None, **kwargs)
259
+ | Initialize self. See help(type(self)) for accurate signature.
260
+ |
261
+ | ----------------------------------------------------------------------
262
+ | Data descriptors defined here:
263
+ |
264
+ | __dict__
265
+ | dictionary for instance variables (if defined)
266
+ |
267
+ | __weakref__
268
+ | list of weak references to the object (if defined)
269
+
@@ -0,0 +1,39 @@
1
+ ararpy/__init__.py,sha256=pooKknmljO03FIscRBbhnmQI00B-yDlX-aQ0i7l5mMc,6375
2
+ ararpy/calc/__init__.py,sha256=kUjRuLE8TLuKOv3i976RnGJoEMj23QBZDu37LWs81U4,322
3
+ ararpy/calc/age.py,sha256=wrGuO7QoZYdsg7Npe7hWW2k6lCYazm6A3J-_yiaAWwQ,6133
4
+ ararpy/calc/arr.py,sha256=0TZ-S_muAzPRfJF7mjna3g0TwL12Z5A6bjJdDv2hyas,11342
5
+ ararpy/calc/basic.py,sha256=7EqK-ZGxn8Ta8qcv9bUuDDnT5NyL_n5rSNiNPcOZ0-Y,2078
6
+ ararpy/calc/corr.py,sha256=Vz0e1at38azPzqCa5S51XwSlNBqt8Kfh4NX8tcWdrI4,9400
7
+ ararpy/calc/err.py,sha256=cRlv_SHXOqfg9eim7VfRiWiKtNQ-7mHMiYdN-9fRhtw,2485
8
+ ararpy/calc/histogram.py,sha256=0GVbDdsjd91KQ1sa2B7NtZ4KGo0XpRIJapgIrzAwQUo,5777
9
+ ararpy/calc/isochron.py,sha256=puNjpOJFts0EaR5rV68ijZV8Ck4z1TeURFX5PovHzck,5569
10
+ ararpy/calc/jvalue.py,sha256=oWJW5tRJ1jwoE4n3V14UzX2lsFHzzB_za1I_easqD7w,1112
11
+ ararpy/calc/plot.py,sha256=v-vJwciJIhKrdXKWAUZbYslez0zBrIa6awI-DopmRZg,1956
12
+ ararpy/calc/raw_funcs.py,sha256=_0XPPulARN76sxpbrF9P0eECOq6oEQ4bJUopezxEz5Q,4854
13
+ ararpy/calc/regression.py,sha256=vrfZyYeV-t-hCVDEasiGD55ybV1n01lS-wrrPV9rZ9Q,38688
14
+ ararpy/calc/spectra.py,sha256=iBhuQ03PyIKHbAQSexx3fZ6ZYaxM6P_uMyWdUeeMck4,1936
15
+ ararpy/files/__init__.py,sha256=5hrjtioxcWE-ZyHNUkMHcI3--FfE2vbcfMpGhtrMjKI,88
16
+ ararpy/files/arr_file.py,sha256=pT5vX_jDcXwBkSC3bhC0jOVFhPjiIIVSI6_YPQerNC0,2035
17
+ ararpy/files/basic.py,sha256=apOz3NS0gssR9j3lywBcsWuBT3jTFAZNwBPnj2DzG6k,2245
18
+ ararpy/files/calc_file.py,sha256=KqqjBV97gwwn2dBMYBMTcrMiS-FN0ydRalaeS9rl-qA,28391
19
+ ararpy/files/export.py,sha256=TVs3YR46gsh-GQVDT4yn9ONjohbmf4RbmUH_X2ZEPx8,63462
20
+ ararpy/files/json.py,sha256=ZrD14-ylF-sYmzvIh5vaEmpmv-v1-e3e5XyzkSK2fDA,1437
21
+ ararpy/files/new_file.py,sha256=wVsLsVD9o0AxhCo_vCdCvWc4szxbmnCcxJyZmtu5b1M,587
22
+ ararpy/files/raw.py,sha256=KOv6UNaAZ48du9CZDTQQr2aD1tv2LUwWmyZiVKoNv9I,4502
23
+ ararpy/files/raw_file.py,sha256=WHLiJ_TD-EWc0D7D5oKwlYffLIfzK3Y3vs8fC7LdGNw,216
24
+ ararpy/files/xls.py,sha256=8ibT4ZRY2grK34ikKm1pDmlWFlVTgDL7vSMO6mphzrY,702
25
+ ararpy/smp/__init__.py,sha256=vs7IOBMFt8o8CnA3ztoUqnPTfEOCUwtJ171pRagKjv8,341
26
+ ararpy/smp/basic.py,sha256=iumCWWHI77g_YtE7sSigIxSPW44BDyVJjzgEA7rqbBg,12494
27
+ ararpy/smp/calculation.py,sha256=5vSgmoWg49kJsiTZsqzBDT0j_QEgN6ryVtIJ0GkpeS0,2736
28
+ ararpy/smp/consts.py,sha256=XIdjdz8cYxspG2jMnoItdlUsxr3hKbNFJjMZJh1bpzw,393
29
+ ararpy/smp/corr.py,sha256=BZkdqB7s030CDju3gJADcSAYVAvpVxcI2aIsA1YKo_Q,15609
30
+ ararpy/smp/initial.py,sha256=6WrUMwNYbb5xQv-cKY1etnFiUoIjEI6q5ov4gus3VuE,8285
31
+ ararpy/smp/plots.py,sha256=5RhV1m29Yov-hSU0HI5QQg_qOMxQ3ZwI47-2mGMCCbE,26016
32
+ ararpy/smp/sample.py,sha256=oqjBZREDyf2RQ_BoK5H-BrXuqwElBoxFRcAwhdaOXYs,44511
33
+ ararpy/smp/style.py,sha256=ufSsGDeW19abaBnC6h1vsfKSd67TcrIYAr56VRdM5gU,6689
34
+ ararpy/smp/table.py,sha256=e_61HDsUJEXZp3TELj6ZVaqMlM_0bsVoV7F2PYWaEtM,4265
35
+ ararpy-0.0.1a1.dist-info/LICENSE,sha256=cvG5t_C1qY_zUyJI7sNOa7gCArdngNPaOrfujl2LYuc,1085
36
+ ararpy-0.0.1a1.dist-info/METADATA,sha256=EMNbu9boerzIa4GMdCKzfhENiS3f0-UTLgQY0HlypNA,10075
37
+ ararpy-0.0.1a1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
38
+ ararpy-0.0.1a1.dist-info/top_level.txt,sha256=9iTpsPCYuRYq09yQTk9d2lqB8JtTEOmbN-IcGB-K3vY,7
39
+ ararpy-0.0.1a1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.42.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ ararpy