data-manipulation-utilities 0.2.8.dev940__tar.gz → 0.2.8.dev950__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.
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/PKG-INFO +11 -1
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/README.md +10 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/pyproject.toml +1 -1
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/logging/log_store.py +11 -7
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/pdataframe/utilities.py +15 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/rdataframe/utilities.py +12 -9
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/utilities.py +7 -2
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/__init__.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/arrays/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/generic/hashing.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/generic/naming.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/generic/typing_utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/generic/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/generic/version_management.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/logging/messages.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/cv_classifier.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/cv_diagnostics.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/cv_performance.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/cv_predict.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/train_mva.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/ml/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/fwhm.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/matrix.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/plotter.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/plotter_1d.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/plotter_2d.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/plotting/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/rdataframe/atr_mgr.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/rfile/ddfgetter.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/rfile/rfprinter.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/rfile/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/fit_stats.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/fitter.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/function.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/gof_calculator.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/minimizers.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/model_factory.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/parameters.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/wdata.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/zfit.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/zfit_models.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/stats/zfit_plotter.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/testing/utilities.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/text/transformer.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/workflow/__init__.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu/workflow/cache.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/__init__.py +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/diagnostics_from_file.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/diagnostics_from_model.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/diagnostics_multiple_methods.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/diagnostics_overlay.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/train_mva.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/train_mva_def.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/train_mva_with_diagnostics.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/ml/tests/train_mva_with_preffix.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/2d.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/fig_size.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/high_stat.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/legend.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/line.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/name.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/no_bounds.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/normalized.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/plug_fwhm.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/plug_stats.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/simple.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/styling.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/title.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/plotting/tests/weights.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/rfile/friends.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/stats/fitter/test_simple.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/stats/kde_optimizer/control.json +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/stats/kde_optimizer/signal.json +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/stats/parameters/data.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/config.json +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/config.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/config_1.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/config_2.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/fail_validate.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/validate.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/generic/with_references.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/pdf_to_tex.txt +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/tests/stats/parameters/parameters_library.yaml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/text/transform.toml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/text/transform.txt +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/text/transform_set.toml +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/text/transform_set.txt +0 -0
- {data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/src/dmu_data/text/transform_trf.txt +0 -0
{data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: data-manipulation-utilities
|
|
3
|
-
Version: 0.2.8.
|
|
3
|
+
Version: 0.2.8.dev950
|
|
4
4
|
Summary: Project storing utilities needed to reduce boilerplate code when analyzing data
|
|
5
5
|
Requires-Python: >=3.10,<3.13
|
|
6
6
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -1514,6 +1514,16 @@ df_2 = put.from_yaml(yml_path)
|
|
|
1514
1514
|
```
|
|
1515
1515
|
|
|
1516
1516
|
and is meant to be less verbose than doing it through the YAML module.
|
|
1517
|
+
|
|
1518
|
+
### Dataframe to markdown
|
|
1519
|
+
|
|
1520
|
+
```python
|
|
1521
|
+
import dmu.pdataframe.utilities as put
|
|
1522
|
+
|
|
1523
|
+
df = _get_df()
|
|
1524
|
+
put.to_markdown(df, '/path/to/simple.md')
|
|
1525
|
+
```
|
|
1526
|
+
|
|
1517
1527
|
# Rdataframes
|
|
1518
1528
|
|
|
1519
1529
|
These are utility functions meant to be used with ROOT dataframes.
|
{data_manipulation_utilities-0.2.8.dev940 → data_manipulation_utilities-0.2.8.dev950}/README.md
RENAMED
|
@@ -1479,6 +1479,16 @@ df_2 = put.from_yaml(yml_path)
|
|
|
1479
1479
|
```
|
|
1480
1480
|
|
|
1481
1481
|
and is meant to be less verbose than doing it through the YAML module.
|
|
1482
|
+
|
|
1483
|
+
### Dataframe to markdown
|
|
1484
|
+
|
|
1485
|
+
```python
|
|
1486
|
+
import dmu.pdataframe.utilities as put
|
|
1487
|
+
|
|
1488
|
+
df = _get_df()
|
|
1489
|
+
put.to_markdown(df, '/path/to/simple.md')
|
|
1490
|
+
```
|
|
1491
|
+
|
|
1482
1492
|
# Rdataframes
|
|
1483
1493
|
|
|
1484
1494
|
These are utility functions meant to be used with ROOT dataframes.
|
|
@@ -41,8 +41,7 @@ class LogStore:
|
|
|
41
41
|
backend = 'logging'
|
|
42
42
|
#--------------------------
|
|
43
43
|
@staticmethod
|
|
44
|
-
|
|
45
|
-
def level(name : str, lvl : int) -> None:
|
|
44
|
+
def level(name : str, lvl : int):
|
|
46
45
|
'''
|
|
47
46
|
Context manager used to set the logging level of a given logger
|
|
48
47
|
|
|
@@ -51,17 +50,22 @@ class LogStore:
|
|
|
51
50
|
name : Name of logger
|
|
52
51
|
lvl : Integer representing logging level
|
|
53
52
|
'''
|
|
54
|
-
log
|
|
53
|
+
log = LogStore.get_logger(name=name)
|
|
55
54
|
if log is None:
|
|
56
55
|
raise ValueError(f'Cannot find logger {name}')
|
|
57
56
|
|
|
58
57
|
old_lvl = log.getEffectiveLevel()
|
|
59
58
|
|
|
60
59
|
LogStore.set_level(name, lvl)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
|
|
61
|
+
@contextlib.contextmanager
|
|
62
|
+
def _context():
|
|
63
|
+
try:
|
|
64
|
+
yield
|
|
65
|
+
finally:
|
|
66
|
+
LogStore.set_level(name, old_lvl)
|
|
67
|
+
|
|
68
|
+
return _context()
|
|
65
69
|
#--------------------------
|
|
66
70
|
@staticmethod
|
|
67
71
|
def get_logger(name : str) -> Union[Logger,None]:
|
|
@@ -55,6 +55,21 @@ def to_yaml(df : pnd.DataFrame, path : str):
|
|
|
55
55
|
|
|
56
56
|
with open(path, 'w', encoding='utf-8') as ofile:
|
|
57
57
|
yaml.dump(data, ofile, Dumper=yaml.CDumper)
|
|
58
|
+
# ----------------------
|
|
59
|
+
def to_markdown(df : pnd.DataFrame, path : str) -> None:
|
|
60
|
+
'''
|
|
61
|
+
Parameters
|
|
62
|
+
-------------
|
|
63
|
+
df : Pandas dataframe
|
|
64
|
+
path: Path to markdown file
|
|
65
|
+
'''
|
|
66
|
+
dir_path = os.path.dirname(path)
|
|
67
|
+
if dir_path != '':
|
|
68
|
+
os.makedirs(dir_path, exist_ok=True)
|
|
69
|
+
|
|
70
|
+
text = df.to_markdown()
|
|
71
|
+
with open(path, 'w', encoding='utf-8') as ofile:
|
|
72
|
+
ofile.write(text)
|
|
58
73
|
# -------------------------------------
|
|
59
74
|
def from_yaml(path : str) -> pnd.DataFrame:
|
|
60
75
|
'''
|
|
@@ -11,7 +11,7 @@ import pandas as pnd
|
|
|
11
11
|
import awkward as ak
|
|
12
12
|
import numpy
|
|
13
13
|
|
|
14
|
-
from ROOT import RDataFrame, RDF, Numba
|
|
14
|
+
from ROOT import RDataFrame, RDF, Numba # type: ignore
|
|
15
15
|
|
|
16
16
|
from dmu.logging.log_store import LogStore
|
|
17
17
|
|
|
@@ -97,16 +97,19 @@ def add_column_with_numba(
|
|
|
97
97
|
|
|
98
98
|
return rdf
|
|
99
99
|
# ---------------------------------------------------------------------
|
|
100
|
-
def rdf_report_to_df(rep : RDF.RCutFlowReport) ->
|
|
100
|
+
def rdf_report_to_df(rep : RDF.RCutFlowReport) -> pnd.DataFrame:
|
|
101
101
|
'''
|
|
102
|
-
|
|
102
|
+
Parameters
|
|
103
|
+
------------------
|
|
104
|
+
rep: output of rdf.Report(), i.e. an RDataFrame cutflow report.
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
Returns
|
|
107
|
+
------------------
|
|
108
|
+
A pandas dataframe with the total, failed, efficiency, and cumulative efficiency
|
|
109
|
+
If no cut was applied, raises ValueError
|
|
106
110
|
'''
|
|
107
111
|
if rep.begin() == rep.end():
|
|
108
|
-
|
|
109
|
-
return None
|
|
112
|
+
raise ValueError('Empty cutflow report')
|
|
110
113
|
|
|
111
114
|
d_data = {'cut' : [], 'All' : [], 'Passed' : []}
|
|
112
115
|
for cut in rep:
|
|
@@ -119,10 +122,10 @@ def rdf_report_to_df(rep : RDF.RCutFlowReport) -> Union[pnd.DataFrame, None]:
|
|
|
119
122
|
d_data['Passed'].append(pas)
|
|
120
123
|
|
|
121
124
|
df = pnd.DataFrame(d_data)
|
|
122
|
-
df['Efficiency' ] = df['Passed'] / df['All']
|
|
125
|
+
df['Efficiency' ] = df['Passed'] / df['All'].replace(0, pnd.NA)
|
|
123
126
|
df['Cummulative'] = df['Efficiency'].cumprod()
|
|
124
127
|
|
|
125
|
-
return df
|
|
128
|
+
return df
|
|
126
129
|
# ---------------------------------------------------------------------
|
|
127
130
|
def random_filter(rdf : RDataFrame, entries : int) -> RDataFrame:
|
|
128
131
|
'''
|
|
@@ -353,7 +353,7 @@ def _parameters_from_result(result : zres) -> dict[str,tuple[float,float]]:
|
|
|
353
353
|
#---------------------------------------------
|
|
354
354
|
def save_fit(
|
|
355
355
|
data : zdata,
|
|
356
|
-
model : zpdf|None,
|
|
356
|
+
model : zpdf|zmod|None,
|
|
357
357
|
res : zres|None,
|
|
358
358
|
fit_dir : str,
|
|
359
359
|
d_const : dict[str,tuple[float,float]]|None = None) -> None:
|
|
@@ -672,7 +672,12 @@ def zres_to_cres(res : zres) -> DictConfig:
|
|
|
672
672
|
pass
|
|
673
673
|
|
|
674
674
|
par = res.params
|
|
675
|
-
|
|
675
|
+
try:
|
|
676
|
+
d_par = { name : _reformat_values(d_par=d_par) for name, d_par in par.items()}
|
|
677
|
+
except KeyError as exc:
|
|
678
|
+
print(res)
|
|
679
|
+
raise KeyError('Fit parameters cannot be used') from exc
|
|
680
|
+
|
|
676
681
|
cfg = OmegaConf.create(d_par)
|
|
677
682
|
|
|
678
683
|
return cfg
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|