xedocs 0.2.25__py3-none-any.whl → 0.2.27__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. xedocs/__init__.py +1 -1
  2. xedocs/_straxen_plugin.py +4 -1
  3. xedocs/data_locations/mongodb.py +21 -4
  4. xedocs/schemas/corrections/__init__.py +1 -26
  5. xedocs/schemas/corrections/implementations/__init__.py +27 -0
  6. xedocs/schemas/corrections/{avg_se_gain.py → implementations/avg_se_gain.py} +3 -3
  7. xedocs/schemas/corrections/{baseline_samples_nv.py → implementations/baseline_samples_nv.py} +1 -1
  8. xedocs/schemas/corrections/{bayes_model.py → implementations/bayes_model.py} +1 -1
  9. xedocs/schemas/corrections/{cs2_aft_corrections.py → implementations/cs2_aft_corrections.py} +1 -1
  10. xedocs/schemas/corrections/{electron_diffusion_cte.py → implementations/electron_diffusion_cte.py} +1 -1
  11. xedocs/schemas/corrections/{electron_drift.py → implementations/electron_drift.py} +1 -1
  12. xedocs/schemas/corrections/{electron_lifetime.py → implementations/electron_lifetime.py} +1 -1
  13. xedocs/schemas/corrections/{extraction_efficiency.py → implementations/extraction_efficiency.py} +2 -2
  14. xedocs/schemas/corrections/{field_distortion.py → implementations/field_distortion.py} +1 -1
  15. xedocs/schemas/corrections/{global_versions.py → implementations/global_versions.py} +1 -1
  16. xedocs/schemas/corrections/{hit_thresholds.py → implementations/hit_thresholds.py} +2 -2
  17. xedocs/schemas/corrections/{hotspot_veto_cut.py → implementations/hotspot_veto_cut.py} +1 -1
  18. xedocs/schemas/corrections/{photoionization_strength.py → implementations/photoionization_strength.py} +1 -1
  19. xedocs/schemas/corrections/{pmt_area_to_pe.py → implementations/pmt_area_to_pe.py} +2 -2
  20. xedocs/schemas/corrections/{position_reconstruction.py → implementations/position_reconstruction.py} +1 -1
  21. xedocs/schemas/corrections/{relative_light_yield.py → implementations/relative_light_yield.py} +1 -1
  22. xedocs/schemas/corrections/{s1_aft_xyz.py → implementations/s1_aft_xyz.py} +1 -1
  23. xedocs/schemas/corrections/{s1_pattern_maps.py → implementations/s1_pattern_maps.py} +1 -1
  24. xedocs/schemas/corrections/{s1_xyz.py → implementations/s1_xyz.py} +1 -1
  25. xedocs/schemas/corrections/{s2_pattern_maps.py → implementations/s2_pattern_maps.py} +1 -1
  26. xedocs/schemas/corrections/{s2_xy.py → implementations/s2_xy.py} +1 -1
  27. xedocs/schemas/corrections/implementations/se_gain_partition.py +21 -0
  28. xedocs/schemas/corrections/{se_gains.py → implementations/se_gains.py} +2 -2
  29. xedocs/schemas/corrections/{som_network.py → implementations/som_network.py} +1 -1
  30. xedocs/schemas/corrections/{z_bias.py → implementations/z_bias.py} +1 -1
  31. xedocs/xedocs.py +38 -3
  32. xedocs/xenon_config.py +1 -0
  33. xedocs-0.2.27.dist-info/AUTHORS.rst +13 -0
  34. {xedocs-0.2.25.dist-info → xedocs-0.2.27.dist-info}/METADATA +7 -4
  35. {xedocs-0.2.25.dist-info → xedocs-0.2.27.dist-info}/RECORD +39 -36
  36. {xedocs-0.2.25.dist-info → xedocs-0.2.27.dist-info}/WHEEL +1 -1
  37. /xedocs/schemas/corrections/{field_simulation.py → implementations/field_simulation.py} +0 -0
  38. /xedocs/schemas/corrections/{lone_hits.py → implementations/lone_hits.py} +0 -0
  39. {xedocs-0.2.25.dist-info → xedocs-0.2.27.dist-info}/entry_points.txt +0 -0
xedocs/__init__.py CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  __author__ = """Yossi Mosbacher"""
4
4
  __email__ = "joe.mosbacher@gmail.com"
5
- __version__ = "0.2.25"
5
+ __version__ = "0.2.27"
6
6
 
7
7
 
8
8
  import logging
xedocs/_straxen_plugin.py CHANGED
@@ -50,7 +50,10 @@ def xedocs_protocol(
50
50
  docs = accessor.find_docs(**kwargs)
51
51
 
52
52
  if not docs:
53
- raise KeyError(f"No matching documents found for {name}.")
53
+ raise KeyError(
54
+ f"No matching documents found for {name}. "
55
+ "It is possible that there is no corresponding data."
56
+ )
54
57
 
55
58
  if isinstance(sort, str):
56
59
  docs = sorted(docs, key=lambda x: getattr(x, sort))
@@ -5,9 +5,9 @@ from rframe import DataAccessor
5
5
 
6
6
 
7
7
  def xenon_config_source(settings: BaseSettings) -> Dict[str, Any]:
8
- from xedocs import settings
8
+ from xedocs import settings as xenon_settings
9
9
 
10
- cfg = settings.xenon_config.RunDB
10
+ cfg = xenon_settings.xenon_config.RunDB
11
11
  data = {}
12
12
  if cfg.xent_url:
13
13
  data['host'] = cfg.xent_url
@@ -17,6 +17,14 @@ def xenon_config_source(settings: BaseSettings) -> Dict[str, Any]:
17
17
  data['password'] = cfg.xent_password
18
18
  if cfg.xent_database:
19
19
  data['auth_db'] = cfg.xent_database
20
+ if cfg.max_pool_size:
21
+ data['max_pool_size'] = cfg.max_pool_size
22
+ if cfg.socket_timeout:
23
+ data['socket_timeout'] = cfg.socket_timeout
24
+ if cfg.connect_timeout:
25
+ data['connect_timeout'] = cfg.connect_timeout
26
+ if cfg.read_preference:
27
+ data['read_preference'] = cfg.read_preference
20
28
  return data
21
29
 
22
30
 
@@ -50,17 +58,26 @@ class MongoDB(BaseSettings):
50
58
  host: str = "localhost"
51
59
  connection_uri: str = None
52
60
 
61
+ max_pool_size: int = 100
62
+ socket_timeout: int = 60000
63
+ connect_timeout: int = 60000
64
+ read_preference: str = "secondaryPreferred"
65
+
53
66
  @property
54
67
  def client(self):
55
68
  if self.connection_uri is None:
56
- self.connection_uri = f"mongodb://{self.username}:{self.password}@{self.host}?authSource={self.auth_db}&readPreference=secondary"
69
+ self.connection_uri = f"mongodb://{self.username}:{self.password}@{self.host}?authSource={self.auth_db}"
57
70
  if self.connection_uri not in self.CLIENT_CACHE:
58
71
  self.CLIENT_CACHE[self.connection_uri] = self.make_client(self.connection_uri)
59
72
  return self.CLIENT_CACHE[self.connection_uri]
60
73
 
61
74
  def make_client(self, connection_uri):
62
75
  import pymongo
63
- return pymongo.MongoClient(connection_uri)
76
+ return pymongo.MongoClient(connection_uri,
77
+ maxPoolSize=self.max_pool_size,
78
+ socketTimeoutMS=self.socket_timeout,
79
+ connectTimeoutMS=self.connect_timeout,
80
+ readPreference=self.read_preference)
64
81
 
65
82
  @classmethod
66
83
  def from_utilix(cls, **kwargs):
@@ -1,28 +1,3 @@
1
+ from .implementations import *
1
2
  from .base_corrections import *
2
3
  from .base_references import *
3
- from .electron_drift import *
4
- from .electron_lifetime import *
5
- from .extraction_efficiency import *
6
- from .field_distortion import *
7
- from .field_simulation import *
8
- from .hit_thresholds import *
9
- from .lone_hits import *
10
- from .pmt_area_to_pe import *
11
- from .position_reconstruction import *
12
- from .s1_aft_xyz import *
13
- from .s1_xyz import *
14
- from .s2_xy import *
15
- from .se_gains import *
16
- from .electron_diffusion_cte import *
17
- from .baseline_samples_nv import *
18
- from .relative_light_yield import *
19
- from .s1_aft_xyz import *
20
- from .avg_se_gain import *
21
- from .bayes_model import *
22
- from .som_network import *
23
- from .hotspot_veto_cut import *
24
- from .photoionization_strength import *
25
- from .s2_pattern_maps import *
26
- from .s1_pattern_maps import *
27
- from .z_bias import *
28
- from .cs2_aft_corrections import *
@@ -0,0 +1,27 @@
1
+ from .electron_drift import *
2
+ from .electron_lifetime import *
3
+ from .extraction_efficiency import *
4
+ from .field_distortion import *
5
+ from .field_simulation import *
6
+ from .hit_thresholds import *
7
+ from .lone_hits import *
8
+ from .pmt_area_to_pe import *
9
+ from .position_reconstruction import *
10
+ from .s1_aft_xyz import *
11
+ from .s1_xyz import *
12
+ from .s2_xy import *
13
+ from .se_gains import *
14
+ from .electron_diffusion_cte import *
15
+ from .baseline_samples_nv import *
16
+ from .relative_light_yield import *
17
+ from .s1_aft_xyz import *
18
+ from .avg_se_gain import *
19
+ from .bayes_model import *
20
+ from .som_network import *
21
+ from .hotspot_veto_cut import *
22
+ from .photoionization_strength import *
23
+ from .s2_pattern_maps import *
24
+ from .s1_pattern_maps import *
25
+ from .z_bias import *
26
+ from .cs2_aft_corrections import *
27
+ from .se_gain_partition import *
@@ -9,11 +9,11 @@ wiki:
9
9
 
10
10
  import rframe
11
11
 
12
- from .base_corrections import TimeSampledCorrection
13
- from ..constants import PARTITION
12
+ from ..base_corrections import TimeIntervalCorrection
13
+ from ...constants import PARTITION
14
14
 
15
15
 
16
- class AvgSingleElectronGain(TimeSampledCorrection):
16
+ class AvgSingleElectronGain(TimeIntervalCorrection):
17
17
 
18
18
  _ALIAS = "avg_se_gains"
19
19
  partition: PARTITION = rframe.Index(default="all_tpc")
@@ -8,7 +8,7 @@ wiki:
8
8
  """
9
9
 
10
10
 
11
- from .base_corrections import TimeSampledCorrection
11
+ from ..base_corrections import TimeSampledCorrection
12
12
 
13
13
 
14
14
  class BaselineSamplesNV(TimeSampledCorrection):
@@ -5,7 +5,7 @@ import datetime
5
5
  from typing import Literal
6
6
  import rframe
7
7
 
8
- from .base_references import BaseResourceReference
8
+ from ..base_references import BaseResourceReference
9
9
 
10
10
 
11
11
  class NaiveBayesClassifier(BaseResourceReference):
@@ -6,7 +6,7 @@ https://xe1t-wiki.lngs.infn.it/doku.php?id=xenon:xenonnt:zihao:sr1_s2aft_photoni
6
6
 
7
7
  """
8
8
 
9
- from .base_corrections import TimeSampledCorrection
9
+ from ..base_corrections import TimeSampledCorrection
10
10
 
11
11
 
12
12
  class cS2BottomTopRatioCorrection(TimeSampledCorrection):
@@ -7,7 +7,7 @@
7
7
 
8
8
  import rframe
9
9
 
10
- from .base_corrections import TimeSampledCorrection
10
+ from ..base_corrections import TimeSampledCorrection
11
11
 
12
12
 
13
13
  class ElectronDiffusionCte(TimeSampledCorrection):
@@ -13,7 +13,7 @@ See note on drift velocity, diffusion constant, and drift time at the gate
13
13
 
14
14
  import rframe
15
15
 
16
- from .base_corrections import TimeSampledCorrection
16
+ from ..base_corrections import TimeSampledCorrection
17
17
 
18
18
 
19
19
  class ElectronDriftVelocity(TimeSampledCorrection):
@@ -8,7 +8,7 @@ See [description in the Team C overview page](https://xe1t-wiki.lngs.infn.it/dok
8
8
 
9
9
  """
10
10
 
11
- from .base_corrections import TimeSampledCorrection
11
+ from ..base_corrections import TimeSampledCorrection
12
12
 
13
13
 
14
14
  class ElectronLifetime(TimeSampledCorrection):
@@ -13,8 +13,8 @@ Time dependence of Extraction Efficiency generated from Kr83m calibration data a
13
13
  """
14
14
  import rframe
15
15
 
16
- from .base_corrections import TimeSampledCorrection
17
- from ..constants import PARTITION
16
+ from ..base_corrections import TimeSampledCorrection
17
+ from ...constants import PARTITION
18
18
 
19
19
 
20
20
  class RelExtractionEff(TimeSampledCorrection):
@@ -9,7 +9,7 @@ See [description in the Team C overview page](https://xe1t-wiki.lngs.infn.it/dok
9
9
 
10
10
  """
11
11
 
12
- from .base_references import BaseMap
12
+ from ..base_references import BaseMap
13
13
 
14
14
 
15
15
  class FdcMap(BaseMap):
@@ -1,6 +1,6 @@
1
1
  import rframe
2
2
 
3
- from .base_corrections import TimeIntervalCorrection
3
+ from ..base_corrections import TimeIntervalCorrection
4
4
 
5
5
 
6
6
  class GlobalVersion(TimeIntervalCorrection):
@@ -6,8 +6,8 @@
6
6
 
7
7
  import rframe
8
8
 
9
- from .base_corrections import TimeSampledCorrection
10
- from ..constants import DETECTOR
9
+ from ..base_corrections import TimeSampledCorrection
10
+ from ...constants import DETECTOR
11
11
 
12
12
 
13
13
  class HitThreshold(TimeSampledCorrection):
@@ -4,7 +4,7 @@ which vetos the events with local single electron rate above the threshold in ea
4
4
  Reference: xenon:xenonnt:analysis:hot_spot_cut_summary
5
5
  """
6
6
 
7
- from .base_corrections import TimeIntervalCorrection
7
+ from ..base_corrections import TimeIntervalCorrection
8
8
 
9
9
  class HotspotVetoThreshold(TimeIntervalCorrection):
10
10
  _ALIAS = 'hotspot_veto_thresholds'
@@ -3,7 +3,7 @@
3
3
  https://xe1t-wiki.lngs.infn.it/doku.php?id=xenon:xenonnt_sr1:photoionization_origin
4
4
  """
5
5
 
6
- from .base_corrections import TimeSampledCorrection
6
+ from ..base_corrections import TimeSampledCorrection
7
7
 
8
8
 
9
9
  class PhotoionizationStrength(TimeSampledCorrection):
@@ -8,8 +8,8 @@
8
8
 
9
9
  import rframe
10
10
 
11
- from .base_corrections import TimeSampledCorrection
12
- from ..constants import DETECTOR
11
+ from ..base_corrections import TimeSampledCorrection
12
+ from ...constants import DETECTOR
13
13
 
14
14
 
15
15
  class PmtAreaToPE(TimeSampledCorrection):
@@ -16,7 +16,7 @@ from typing import Literal
16
16
 
17
17
  import rframe
18
18
 
19
- from .base_references import BaseResourceReference
19
+ from ..base_references import BaseResourceReference
20
20
 
21
21
 
22
22
  class PosRecModel(BaseResourceReference):
@@ -11,7 +11,7 @@
11
11
 
12
12
  import rframe
13
13
 
14
- from .base_corrections import TimeSampledCorrection
14
+ from ..base_corrections import TimeSampledCorrection
15
15
 
16
16
 
17
17
  class RelativeLightYield(TimeSampledCorrection):
@@ -6,7 +6,7 @@ Should be treated like a normal correction for dependencies and should be update
6
6
 
7
7
  """
8
8
 
9
- from .base_references import BaseResourceReference
9
+ from ..base_references import BaseResourceReference
10
10
 
11
11
 
12
12
  class S1AFTXYZMap(BaseResourceReference):
@@ -5,7 +5,7 @@ https://xe1t-wiki.lngs.infn.it/doku.php?id=min:s1opticalmap_comparison (Min + Gi
5
5
 
6
6
  """
7
7
 
8
- from .base_references import BaseMap
8
+ from ..base_references import BaseMap
9
9
 
10
10
 
11
11
  class S1PatternMap(BaseMap):
@@ -8,7 +8,7 @@ The jupyter notebook in this folder is replaced by [this](https://github.com/XEN
8
8
 
9
9
  """
10
10
 
11
- from .base_references import BaseMap
11
+ from ..base_references import BaseMap
12
12
 
13
13
 
14
14
 
@@ -15,7 +15,7 @@ https://xe1t-wiki.lngs.infn.it/doku.php?id=xenon:xenon1t:jacques:nt_sr1_s2pl (Ja
15
15
 
16
16
  """
17
17
 
18
- from .base_references import BaseMap
18
+ from ..base_references import BaseMap
19
19
 
20
20
 
21
21
  class S2PatternMap(BaseMap):
@@ -19,7 +19,7 @@ See [description in the Team C overview page](https://xe1t-wiki.lngs.infn.it/dok
19
19
 
20
20
  """
21
21
 
22
- from .base_references import BaseMap
22
+ from ..base_references import BaseMap
23
23
 
24
24
 
25
25
  class S2XYMap(BaseMap):
@@ -0,0 +1,21 @@
1
+ """
2
+ Correction: Region linear and circular for AB/CD partitions
3
+ Affects: Corrected areas
4
+
5
+ Two distinct patterns of evolution of single electron corrections between A+B and C+D. Distinguish thanks to linear and circular regions.
6
+ This TPC partitioning affects the single electron gains - both the average value and not - and the relative extraction efficiency.
7
+
8
+ SR0 wiki: https://xe1t-wiki.lngs.infn.it/doku.php?id=jlong:sr0_2_region_se_correction
9
+ SR1 wiki: https://xe1t-wiki.lngs.infn.it/doku.php?id=xenon:xenonnt:noahhood:corrections:se_gain_ee_final
10
+ """
11
+
12
+ import rframe
13
+
14
+ from ..base_corrections import TimeIntervalCorrection
15
+
16
+ class SingleElectronGainPartition(TimeIntervalCorrection):
17
+
18
+ _ALIAS = "single_electron_gain_partition"
19
+ region: str = rframe.Index(max_length=80)
20
+ value: float
21
+
@@ -13,8 +13,8 @@ Wiki:
13
13
 
14
14
  import rframe
15
15
 
16
- from .base_corrections import TimeSampledCorrection
17
- from ..constants import PARTITION
16
+ from ..base_corrections import TimeSampledCorrection
17
+ from ...constants import PARTITION
18
18
 
19
19
 
20
20
  class SingleElectronGain(TimeSampledCorrection):
@@ -4,7 +4,7 @@ Self-Organizing Map to classify peaklets as one of several SOM_types,
4
4
  as well as classifying those types into either an S1 or an S2
5
5
  """
6
6
 
7
- from .base_references import BaseResourceReference
7
+ from ..base_references import BaseResourceReference
8
8
 
9
9
 
10
10
  class SOMClassifier(BaseResourceReference):
@@ -5,7 +5,7 @@ the observed r(r_obs) and z(z_obs).
5
5
  Reference: xenon:xenonnt:terliuk:drift_field_z_bias_correction
6
6
  """
7
7
 
8
- from .base_references import BaseResourceReference
8
+ from ..base_references import BaseResourceReference
9
9
 
10
10
  class ZBias(BaseResourceReference):
11
11
  _ALIAS = 'z_bias_maps'
xedocs/xedocs.py CHANGED
@@ -10,6 +10,7 @@ from tqdm.auto import tqdm
10
10
 
11
11
  from ._settings import settings
12
12
  from .schemas import XeDoc
13
+ from .data_locations.mongodb import MongoDB
13
14
 
14
15
 
15
16
  def find_docs(schema, datasource=None, **labels):
@@ -77,6 +78,40 @@ def find_one(schema, datasource=None, **labels):
77
78
 
78
79
 
79
80
  def insert_docs(schema: str, docs: Union[list, dict, pd.DataFrame], datasource=None, dry=False):
81
+ # Currently stuck on how to deal with instances of schemas
82
+ if datasource == 'straxen_db': # switch to straxen_db
83
+ mongo_username = MongoDB().username
84
+ if mongo_username == 'corrections_expert':
85
+ # If statements only trigger
86
+ target_version = "ONLINE"
87
+ # Note to self: This is done in a very dumb way, fix later
88
+ ONLINE_check = True
89
+ if isinstance(docs, pd.DataFrame):
90
+ ONLINE_check = (docs['version'] == target_version).all()
91
+
92
+ elif isinstance(docs, dict):
93
+ ONLINE_check = all(item['version'] == target_version for item in docs)
94
+
95
+ else:
96
+ if isinstance(docs, list):
97
+ if isinstance(docs[0], list) or isinstance(docs[0], dict):
98
+ # It could be a list of dicts, or list or schemas...
99
+ # This can be an actual list or a list of docs
100
+ # these cannot be treated the same
101
+ ONLINE_check = all(item['version'] == target_version for item in docs)
102
+ else:
103
+ # This assumes the last choice is a schema, if not other things will yield errors?
104
+ # This is kinda sloppy...
105
+ ONLINE_check = all(item.version == target_version for item in docs)
106
+ elif hasattr(docs, 'version'):
107
+ if docs.version != target_version: # if version isnt ONLINE
108
+ ONLINE_check = False
109
+ else:
110
+ ONLINE_check = all(item.version == target_version for item in docs)
111
+
112
+ if not ONLINE_check:
113
+ raise ValueError("You are attempting to modify the a straxen_db correction whose version is not ONLINE")
114
+
80
115
  if isinstance(docs, pd.DataFrame):
81
116
  docs = docs.reset_index().to_dict(orient="records")
82
117
  if not isinstance(docs, list):
@@ -125,13 +160,13 @@ def find_schema(name) -> Type[XeDoc]:
125
160
 
126
161
  def get_accessor(schema, db=None):
127
162
  import xedocs
128
-
163
+
129
164
  schema = find_schema(schema)
130
165
  if not issubclass(schema, XeDoc):
131
166
  raise TypeError(
132
167
  "Schema must be a subclass of XeDoc" "or the name of a known schema."
133
168
  )
134
-
169
+
135
170
  if db is None:
136
171
  db = settings.DEFAULT_DATABASE
137
172
  if isinstance(db, str):
@@ -169,7 +204,7 @@ def sync_dbs(from_db, to_db, schemas=None, dry=False):
169
204
 
170
205
  if isinstance(from_db, str):
171
206
  from_db = getattr(xedocs.databases, from_db)()
172
-
207
+
173
208
  if isinstance(to_db, str):
174
209
  to_db = getattr(xedocs.databases, to_db)()
175
210
 
xedocs/xenon_config.py CHANGED
@@ -53,6 +53,7 @@ class RunDBConfig(BaseModel):
53
53
  max_pool_size: int = 100
54
54
  socket_timeout: int = 60000
55
55
  connect_timeout: int = 60000
56
+ read_preference: str = "secondaryPreferred"
56
57
 
57
58
 
58
59
  class StraxenConfig(BaseModel):
@@ -0,0 +1,13 @@
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ Development Lead
6
+ ----------------
7
+
8
+ * Yossi Mosbacher <joe.mosbacher@gmail.com>
9
+
10
+ Contributors
11
+ ------------
12
+
13
+ None yet. Why not be the first?
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xedocs
3
- Version: 0.2.25
3
+ Version: 0.2.27
4
4
  Summary: Top-level package for xedocs.
5
5
  Home-page: https://github.com/XENONnT/xedocs
6
6
  Author: Yossi Mosbacher
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.8
14
14
  Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
17
18
  Provides-Extra: all
18
19
  Provides-Extra: db
19
20
  Requires-Dist: appdirs (>=1.4.4,<2.0.0)
@@ -21,7 +22,7 @@ Requires-Dist: click
21
22
  Requires-Dist: parse (>=1.19.1,<2.0.0)
22
23
  Requires-Dist: pymongo ; extra == "db"
23
24
  Requires-Dist: pyyaml (>=6.0,<7.0)
24
- Requires-Dist: rframe (>=0.2.10,<0.3.0)
25
+ Requires-Dist: rframe (>=0.2.20,<0.3.0)
25
26
  Requires-Dist: rich
26
27
  Requires-Dist: tinydb (>=4.7.0,<5.0.0)
27
28
  Requires-Dist: tqdm (>=4.64.1,<5.0.0)
@@ -31,8 +32,10 @@ Description-Content-Type: text/x-rst
31
32
  =======================================
32
33
  XeDocs - XENON Metadata management tool
33
34
  =======================================
34
- xedocs is meant to replace cmt and bodega as well as helping tracking all shared documents especially if
35
- they need to be versioned.
35
+
36
+ XeDocs manages tracking versioned detector numbers, replacing CMT and ideally all hard-coded values.
37
+ XeDocs both looks up data from its own online database, and uses straxen URL-style lookup to find other resources.
38
+ To upload data to the XeDocs database, you must submit it as a PR to https://github.com/XENONnT/corrections
36
39
 
37
40
  What does Xedocs give you
38
41
  =========================
@@ -1,6 +1,6 @@
1
- xedocs/__init__.py,sha256=payq7R-uZkphyZFflbmIrHFTyYP17MKFH1jHdWJkopM,1054
1
+ xedocs/__init__.py,sha256=PxdIwG7g5X1CA4iI8NgfD0J9P9Lmmn0TQqQqDzEfW3A,1054
2
2
  xedocs/_settings.py,sha256=_Fjj5XJBHBrN6N1Dqs_JzovbEcF6--5BGnAggK1ksck,4199
3
- xedocs/_straxen_plugin.py,sha256=XR6ACc3TngQ7b9txyDjFlOLKca2YIK-uhAmq2RRxoMk,1815
3
+ xedocs/_straxen_plugin.py,sha256=bxKWkVDNCS0Mah_GGNEvE8TCk-ibrY8xJbO0UMvfajM,1904
4
4
  xedocs/cli.py,sha256=1oZXa4Iqs-ANRTABZP8K6e3oSIatKnJNhQ1DZ4rsNrc,3493
5
5
  xedocs/clock.py,sha256=7LWs82OWXTSI9G26PRahyVerKDxnF1XYD-Hc_mEWrrw,2357
6
6
  xedocs/data_locations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -8,7 +8,7 @@ xedocs/data_locations/api.py,sha256=PDvkwf0elEBpfx20u7y7fqlOgdhVHqHS4pVVoRjoI00,
8
8
  xedocs/data_locations/corrections_repo.py,sha256=g8GPa3vDCHhU04L9KybsRLk3rkYRxmAItPgRM_fiQzg,170
9
9
  xedocs/data_locations/data_folder.py,sha256=reCX7CgZMjXJYWdsuMI3JLmSgwd2RTMjPO7iAIzhqaI,1812
10
10
  xedocs/data_locations/github.py,sha256=Tg3Mwo1vUE7Z3gzhjgEtSDlEtUx7F0gY8U-Uj89GIZI,2683
11
- xedocs/data_locations/mongodb.py,sha256=vQigyqiU5-GDQFPlvNJO3EiHOTxcYY3M1HaR-7W9Ok0,2456
11
+ xedocs/data_locations/mongodb.py,sha256=2tVlHgSlw7mVQ9zRtLz2DPZgyJ7d5JNYMZm0VO_4VDo,3203
12
12
  xedocs/databases.py,sha256=t8WIZt0zf_DHvie2NG-q0CNi7zsXgOVyvrKunCz0lhc,1799
13
13
  xedocs/dispatchers.py,sha256=GJ5F3mJYMf95wNyFrrsrNevYqfuEOEShSdsPo9gkBD4,2664
14
14
  xedocs/entrypoints.py,sha256=1y61KiT0gaTWGlM-PHawXSSzI3ayEhjOucNAkgH_Aps,2098
@@ -28,35 +28,37 @@ xedocs/schemas/calibrations/utube_calibrations.py,sha256=DK73zkI5a73N5wBoO1dotdl
28
28
  xedocs/schemas/constants.py,sha256=vVDXYoD7b_347JEAhuZLcNDI9G0CyWSOr63HMHZIJz4,393
29
29
  xedocs/schemas/context_config.py,sha256=xqIqGLbgHnPlelG5oCO29B5cQh35XIz5LhYlxpdJWyA,180
30
30
  xedocs/schemas/context_lineage.py,sha256=B3zFt0TpQ3wQuG5H-rRMju0IRQkkg7sTD2SuV5Ngut4,568
31
- xedocs/schemas/corrections/__init__.py,sha256=-xdhQtH9YcByDW_LLC2CDJWM9LPjDgkDQjY8YTYTcGI,851
32
- xedocs/schemas/corrections/avg_se_gain.py,sha256=WP82QcGzfZB-v9iJiazg0rz483wLdLiAFY8nMTxv9Ig,488
31
+ xedocs/schemas/corrections/__init__.py,sha256=QpQBY_UNdiodc_zPbE1O6wR1SWIaAnyNze7acYj2MwE,94
33
32
  xedocs/schemas/corrections/base_corrections.py,sha256=ryH16ypLec9Pp2AXI1RImeaZOfxOih-1blbnKedy_Us,11179
34
33
  xedocs/schemas/corrections/base_references.py,sha256=hloxM80EfDoxv3qwyjC8KqsCxeq5iWQzrz5LthsOpR4,3473
35
- xedocs/schemas/corrections/baseline_samples_nv.py,sha256=kqNL_TRXKY9djeIAJIamPH0QDR3EkWm1opSuLKoXz28,473
36
- xedocs/schemas/corrections/bayes_model.py,sha256=EZzQiPgmxg-49mdBPmsh9k1vqMzaViA1tFm-vewDJ70,234
37
- xedocs/schemas/corrections/cs2_aft_corrections.py,sha256=DNeU_sLmpRlSVx3KICp1Ons6KMrcoO2lkiB2sTmD8U8,387
38
- xedocs/schemas/corrections/electron_diffusion_cte.py,sha256=_YRB2Xb0U_lGP15qwREwOWPyIc5hPdf7JJY4IHwN_TE,525
39
- xedocs/schemas/corrections/electron_drift.py,sha256=NRtqUmQN0GtSjIbQzLh0ABCCGx1eVr3Y-DNylMJPpRk,1161
40
- xedocs/schemas/corrections/electron_lifetime.py,sha256=_OZk-Z3dj9MdAWfRsshsPbulYDFmARcemaNIm8LplWg,949
41
- xedocs/schemas/corrections/extraction_efficiency.py,sha256=ckp6KP-gZ8JgbmAX6HAk9vqtsV4DxapcawZ2f02qKWk,1204
42
- xedocs/schemas/corrections/field_distortion.py,sha256=tE60xscPIBoXeFFCY4myFiELNl4weA2s4zBAFAWPlFY,894
43
- xedocs/schemas/corrections/field_simulation.py,sha256=NGZTInYKtOjph6HRmDSUyQgOHnMHaBA648xiwhvZQ4A,1216
44
- xedocs/schemas/corrections/global_versions.py,sha256=0hM2YBZyJ23qSE1oWJgVnGLUT8v6PaWJpMk06PmS3Q0,212
45
- xedocs/schemas/corrections/hit_thresholds.py,sha256=EaV1GbtxmN3ocqWLBdW-8vYRikRX0CWsGGfWQBEbXyw,723
46
- xedocs/schemas/corrections/hotspot_veto_cut.py,sha256=VUdpWP94qhI7TPENCJYHUukTkNo1RyXIMkF2mveuqPc,403
47
- xedocs/schemas/corrections/lone_hits.py,sha256=HYspFe5Am-RwTmznpeszJTtdH16vEy6S0fCLtT0NIlQ,1159
48
- xedocs/schemas/corrections/photoionization_strength.py,sha256=bAV9Ja1d3mhBTA9ezZgrsQovhVahwLT_1i_PxeO3H6Q,287
49
- xedocs/schemas/corrections/pmt_area_to_pe.py,sha256=RYauwjWqZ7BM-poRUwTj17j7RqIgw_bZuqcLf2-e2-U,1107
50
- xedocs/schemas/corrections/position_reconstruction.py,sha256=VoVf25UJ-i5GkWHQtyAVhoHLftsB85rX6AiHJM_fpLk,1354
51
- xedocs/schemas/corrections/relative_light_yield.py,sha256=lkXBvW_ldzABbwVQXwYkbi-Txlc87NZMsss2sP4ayYM,589
52
- xedocs/schemas/corrections/s1_aft_xyz.py,sha256=ruV8Xgscvb28NqNlmEFsHppLjxDid13OleULDHdPW9Q,458
53
- xedocs/schemas/corrections/s1_pattern_maps.py,sha256=15z9kBUZEImxSQClD85aLrGRU8JAxs2EHPLQ6odLU6Q,230
54
- xedocs/schemas/corrections/s1_xyz.py,sha256=2j4P03b3F_gdolbY2ulmmzmO0WUucvccdOs0WWwrVbc,709
55
- xedocs/schemas/corrections/s2_pattern_maps.py,sha256=ymqKBA24c43v9w7pgq4wMw_jKKY5uzlB7-tancMxB3s,857
56
- xedocs/schemas/corrections/s2_xy.py,sha256=If2wspR9Yq6I2An86nrnO4e8nSYBqqEMvUvxI9Zq2uA,1207
57
- xedocs/schemas/corrections/se_gains.py,sha256=oCiRkXYIz5WgxyUE585_FWDkonZr0XJQcvBaoWFFMuk,1143
58
- xedocs/schemas/corrections/som_network.py,sha256=B03ccLpivQDQ9Jp8Akqnq1i-_K-nSuEUxvZLRLiV0-E,380
59
- xedocs/schemas/corrections/z_bias.py,sha256=1Q7pMrGI5OlB9oVdRpB5JEcwQJAxymi7aLt1CUOFids,331
34
+ xedocs/schemas/corrections/implementations/__init__.py,sha256=pqRohpcoxEL8Qe-CxMMZzqgXjoNRyj5LBLSB3zAXWdQ,821
35
+ xedocs/schemas/corrections/implementations/avg_se_gain.py,sha256=cL-pioHMxh0XmkcfgHS48v3ZbwJdu4bIJlV_3Z40cm4,492
36
+ xedocs/schemas/corrections/implementations/baseline_samples_nv.py,sha256=4AaQyLaH95Nixq93xe7A86lZua8tylVBoYgq3xbwq_I,474
37
+ xedocs/schemas/corrections/implementations/bayes_model.py,sha256=GatQ0DxzNWcveckun0vRfQ76RECAIqEO6eZgBxwlowA,235
38
+ xedocs/schemas/corrections/implementations/cs2_aft_corrections.py,sha256=knTzYmiMD1AFvBzuoXjIbxRW6Ev1Y1yMS61p8MjMCEk,388
39
+ xedocs/schemas/corrections/implementations/electron_diffusion_cte.py,sha256=pu2ZAdK6hUJ0vmv4CCaQ8INHUj7j5BwCLlwCHLhhVFo,526
40
+ xedocs/schemas/corrections/implementations/electron_drift.py,sha256=OOCnVfKnQ56g4Hmlko_qmsTQIowZf4SIGAWFqMrXZ1o,1162
41
+ xedocs/schemas/corrections/implementations/electron_lifetime.py,sha256=zHVZnx61Btv_E8esJqvAzfIBzViQ3LtiVyN1TOkblVc,950
42
+ xedocs/schemas/corrections/implementations/extraction_efficiency.py,sha256=IZtrk3AOe7tYS3GGrrNQlonGywmQ-mkQGCDBV3HD4Zs,1206
43
+ xedocs/schemas/corrections/implementations/field_distortion.py,sha256=sijONGg-l09pMk4Ue3ZUm8Mk--2TYoI8DZsSs0OZrYM,895
44
+ xedocs/schemas/corrections/implementations/field_simulation.py,sha256=NGZTInYKtOjph6HRmDSUyQgOHnMHaBA648xiwhvZQ4A,1216
45
+ xedocs/schemas/corrections/implementations/global_versions.py,sha256=0rfaRGQJqep72g8Kfo9b1tCOcgfo_7kQ3YHEt2lsWnc,213
46
+ xedocs/schemas/corrections/implementations/hit_thresholds.py,sha256=77Mp_Ugvk7Nge6544Rv8JfGZ5niKbIDQr_beiMj4qpw,725
47
+ xedocs/schemas/corrections/implementations/hotspot_veto_cut.py,sha256=eBfDLeJteA5jyV7CcEdD2uDLgOAxyQC11Xm4rtS4kLg,404
48
+ xedocs/schemas/corrections/implementations/lone_hits.py,sha256=HYspFe5Am-RwTmznpeszJTtdH16vEy6S0fCLtT0NIlQ,1159
49
+ xedocs/schemas/corrections/implementations/photoionization_strength.py,sha256=ONllBdag6kgKEXdyuP6fnFH-BICWQUNgNu5HNXSyXY0,288
50
+ xedocs/schemas/corrections/implementations/pmt_area_to_pe.py,sha256=270jqtXqkzx_5AnqMRgdYW2Ba8EUYPJZ6ymMr7eplxI,1109
51
+ xedocs/schemas/corrections/implementations/position_reconstruction.py,sha256=h_m-fRLGu_C1Vq2gS71rNcmkaf8pLyXJyTqDgoXw03E,1355
52
+ xedocs/schemas/corrections/implementations/relative_light_yield.py,sha256=0kavAjWiV-VKb3b5Me-k7N62SJUrFLiYpg0b6SjwSn4,590
53
+ xedocs/schemas/corrections/implementations/s1_aft_xyz.py,sha256=QKSAlUSuLkNdNaJcokSZXxfigO9hSNEoauJxjK0Tsew,459
54
+ xedocs/schemas/corrections/implementations/s1_pattern_maps.py,sha256=Ff0nnadGpamX0t3SVP66vOMT77iWdSd_u4l171dMuIU,231
55
+ xedocs/schemas/corrections/implementations/s1_xyz.py,sha256=yo1-RBIw5GVADh9Cj5chS54ju8aw3jaxaaX0I-SEG70,710
56
+ xedocs/schemas/corrections/implementations/s2_pattern_maps.py,sha256=oQfbZ8neukjQJrZNf40G0iTigKFxoa1hPRaRB7l5QuQ,858
57
+ xedocs/schemas/corrections/implementations/s2_xy.py,sha256=-MoHFzsj5JSS1sWpec_4A4X534F5xeT2r5y846okVmg,1208
58
+ xedocs/schemas/corrections/implementations/se_gain_partition.py,sha256=mj4mxuVVlcau9TtnW1-0u1gvXEec77674Z5D7emw5-c,796
59
+ xedocs/schemas/corrections/implementations/se_gains.py,sha256=48ZQFQer1h-IAnsFDXf0Zt1q127Z-S7G8zB3K5pWS7I,1145
60
+ xedocs/schemas/corrections/implementations/som_network.py,sha256=mgPXh0_kmffvxma-19pDoZA8oKwEx9QCraSIxUI5t4w,381
61
+ xedocs/schemas/corrections/implementations/z_bias.py,sha256=GeOOnVMx60E7I2WaldEXlvl7RD0l2DR5vbTwX1HSoOI,332
60
62
  xedocs/schemas/detector_numbers.py,sha256=-KxnzutrXhANVSs3tfY-NULgVyS5DSgGsTpF8ZTrte8,514
61
63
  xedocs/schemas/fax.py,sha256=LGjVIQX6KbGyaKJIDbPOBuhmoobodBRfEUFVPQ3ds1c,599
62
64
  xedocs/schemas/historian_reader.py,sha256=celaxQ15IsX_vzgrHer4kORjRfAzZ2_whOIcREqWXYU,875
@@ -76,9 +78,10 @@ xedocs/schemas/pmt_data/voltage_changes.py,sha256=ieTNCSoE4A3VHrWZ3Hk5HN_q5Nrwu0
76
78
  xedocs/schemas/pmt_data/voltage_settings.py,sha256=L2cScDQNviWgAlWvMRjnIEgsP0urVg0gYWAxK3FrFPc,428
77
79
  xedocs/utils.py,sha256=3OmrYetj83uhy0x5GHzk-_z_vSQeFR50X_9R51B3oWg,8398
78
80
  xedocs/widgets.py,sha256=l2pgQaWqycZQF5pF6eEeLuHdqjVBkJ8OB-o-mcivMl4,28810
79
- xedocs/xedocs.py,sha256=td4tgisflbyFNwZ6SxuSxlBDa9uLhfSD6XUC26_3DF0,5114
80
- xedocs/xenon_config.py,sha256=X1rml9grSEeMkHDicbu66EtvcMj7a_Jv9CSiQy1Ec_Y,2626
81
- xedocs-0.2.25.dist-info/METADATA,sha256=pJo7dRJYMxabDDEfIY6ILUYHviS7u4yp6CE-HjbjI-c,5618
82
- xedocs-0.2.25.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
83
- xedocs-0.2.25.dist-info/entry_points.txt,sha256=AfKuejqaCB-nA4rYbuWtMcR0d-t4nNzrM3s8V_e7YSk,92
84
- xedocs-0.2.25.dist-info/RECORD,,
81
+ xedocs/xedocs.py,sha256=Dk-ld5X6qB6hrp40svDkJX_9K0MKkZTxal-fLVQpIz8,6949
82
+ xedocs/xenon_config.py,sha256=QQlg2icofZWq_UAh5kDSuViai0uP_3ClozNNv6mpx3s,2674
83
+ xedocs-0.2.27.dist-info/AUTHORS.rst,sha256=7XNtvXT_irnC5nzau-Al_VVmmhk8EgW811pPs8OXgBo,164
84
+ xedocs-0.2.27.dist-info/METADATA,sha256=wq-_CFUHhsctHMIaGmq_RdhAS02G1b-YdLk1xT3H_Xg,5864
85
+ xedocs-0.2.27.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
86
+ xedocs-0.2.27.dist-info/entry_points.txt,sha256=AfKuejqaCB-nA4rYbuWtMcR0d-t4nNzrM3s8V_e7YSk,92
87
+ xedocs-0.2.27.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.7.0
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any